//讀取所有聯絡人
-(void)readallpeoples
);
dispatch_semaphore_wait(sema, dispatch_time_forever);
dispatch_release(sema);
}else
//取得本地所有聯絡人記錄
if (tmpaddressbook==nil) ;
nsarray* tmppeoples = (nsarray*)abaddressbookcopyarrayofallpeople(tmpaddressbook);
for(id tmpperson in tmppeoples)
cfrelease(tmpemails);
//獲取的聯絡人單一屬性:birthday
nsdate* tmpbirthday = (nsdate*)abrecordcopyvalue(tmpperson, kabpersonbirthdayproperty);
nslog(@"birthday:%@", tmpbirthday);
[tmpbirthday release];
//獲取的聯絡人單一屬性:note
nsstring* tmpnote = (nsstring*)abrecordcopyvalue(tmpperson, kabpersonnoteproperty);
nslog(@"note:%@", tmpnote);
[tmpnote release];
//獲取的聯絡人單一屬性:generic phone number
abmultivalueref tmpphones = abrecordcopyvalue(tmpperson, kabpersonphoneproperty);
for(nsinteger j = 0; j < abmultivaluegetcount(tmpphones); j++)
cfrelease(tmpphones);
}//釋放記憶體
[tmppeoples release];
cfrelease(tmpaddressbook);
}
解釋下**:由於ios6.0系統的公升級,對客戶隱私有了乙個較大的提示。
以前
tmpaddressbook =abaddressbookcreate();這樣就可以讀取了,但是現在要做乙個判斷了。可以具體看看**。
把通訊錄取出來放在乙個array裡面。這樣你就可以對陣列進行你的要求了。
他是在plist中 新增一項
在xcode裡顯示的是privacy - contacts usage description。後面的string就是你要想提示的文字內容
「privacy - location usage description」。這個是定位位置提示。其他類似。
分享乙個測試經驗,也是從網上看到的。
但是第二次及以後,即時刪掉,也不會再出現了。
如果想再次出現,可以 設定-通用-還原-還原位置與隱私
iOS 通訊錄排序
在很多時候需要處理分組資訊 和 資料排序 按時間 字母 排序,類似通訊錄 如下圖 做這個 我的思路是用字典 這裡按字母abcd排序 首先把中文轉換成拼音,擷取第乙個字母 然後插入字典 字母作為key 並根據key對應的value建立為陣列,第二次取出字典中所有的key 判斷新的key是否在所有key...
iOS 獲取通訊錄
獲取通訊錄資料放到模型陣列裡 第一步在呼叫改方法之前,需要先新建乙個模型用來存放獲取到的聯絡人資料,大概如下 property nonatomic,strong nsstring firstname property nonatomic,strong nsstring lastname proper...
iOS 獲取手機通訊錄
首先匯入 addressbook.framework 獲取通訊錄資訊核心 如下 獲取通訊錄中每條資訊內容 abaddressbookref tmpaddressbook abaddressbookcreatewithoptions null,null dispatch semaphore t sem...