顯示乙個班級的成員列表,有乙個是管理員要排在最上面,下面按照拼音排序實現索引列表,效果圖如下:
查詢資料庫獲取成員列表
1將每個成員的名字轉化成拼音//成員列表根據 isadmin 字段進行排序查詢——order by isadmin
2 nsmutablearray *members =[[asmemberdao sharedinstance] queryallmembersbygroupid:groupid];3//
根據排序查詢結果第乙個為管理員
4 ascontact *memeberadmin = [members objectatindex:0];
1將成員列表按照拼音字段 categoryname進行排序//初始化hanyupinyinoutputformat物件,設定相應的 type
2 hanyupinyinoutputformat *outputformat=[[hanyupinyinoutputformat alloc] init];
3[outputformat settonetype:tonetypewithouttone];
4[outputformat setvchartype:vchartypewithv];
5[outputformat setcasetype:casetypeuppercase];6//
遍歷成員列表,將成員名字 contactname 轉成拼音,並存放到 categoryname 欄位中,用於排序
7 [members enumerateobjectsusingblock:^(id obj, nsuinteger idx, bool *stop) ];
12 [outputformat release];
1 nssortdescriptor *sortdescriptor = [[nssortdescriptor alloc] initwithkey:@"定義乙個全域性變數 datadictionary 來組織資料結構categoryname
"ascending:yes];
2 nsarray *array =[[nsarray alloc] initwithobjects:sortdescriptor, nil];
3[members sortusingdescriptors:array];
4[array release];
5 [sortdescriptor release];
key: 將漢字轉完拼音後的第乙個字母, 也就是上圖 section 中的 a、b、c...
value: 是乙個成員陣列,存放每個 section 下的成員列表
如上圖: a 是字典的乙個 key, 對應的 value 就是成員陣列 ,當然陣列中存放的是成員物件。
1 datadictionary =[[nsmutabledictionary alloc] init];2//在定義乙個全域性變數存放每個 section 下的成員陣列
3 nsmutablearray *currentarray =nil;4//
用於獲取拼音中第乙個字母
5 nsrange arange = nsmakerange(0, 1
);6 nsstring *firstletter =nil;7//
遍歷成員列表組織資料結構
8for (ascontact *contact in
members)
13//
獲取拼音中第乙個字母,如果已經存在則直接將該成員加入到當前的成員陣列中,如果不存在,建立成員資料,新增乙個 key-value 結構到 datadictionary 中
14 firstletter =[contact.categoryname substringwithrange:arange];
15if ([datadictionary objectforkey:firstletter] ==nil)
19[currentarray addobject:contact];
20 }
allkeys
用於顯示索引列表中索引
1//取出 datadictionary 中的 key 並進行排序
2 allkeys =[[nsmutablearray alloc] initwitharray:[[datadictionary allkeys] sortedarrayusingfunction:sortobjectsbykey context:null]];3//
然後將管理員加入到排好序 allkeys 的最前面
4 [allkeys insertobject:@"
管理員" atindex:0
];5 [datadictionary setobject:[nsarray arraywithobjects:contactadmin, nil] forkey:@"
管理員"];
iOS漢字轉拼音
那麼問題來了,字母和姓氏怎麼對應的呢?系統是老外寫的,不可能像新華字典一樣有個目錄吧?查詢官方文件,在corefoundation框架中找到了cstring這個檔案中的 cfstringtransform函式,其實就這個函式就可以實現漢字轉拼音的功能.在此我分別封裝了乙個類方法和乙個nsstring...
iOS開發 漢字轉拼音
ios其實自帶漢字轉拼音的,無需使用網上的一些demo,最關鍵的是,網上的demo支援有部分問題的,比如不支援繁體字輸入 書本 僅僅支援生僻字部分,比如輸入 魑魅魍魎 而系統自帶的並不一樣,只要字型檔支援的話,都支援的,但是多音字還是不支援的。nsstring str 中國abc人民共和國 齷蹉 書...
漢字轉拼音
region 漢字轉拼音 漢字轉拼音類 用法 crazycoderpinyin.covent 漢字 長度 using system.text.regularexpressions build date 20030610 public class crazycoderpinyin 定義陣列 priva...