OC中為了對類的方法進行擴展,添加了分類的概念。
分類能夠做到的事情主要是:即使在你不知道一個類的源碼情況下,向這個類添加擴展的方法。
關於字典OC中字典是無序的,如果想創建有序字典,可以在字典中添加一個有序數組,數組中保存有順序的key值,按照數組key值的順序去訪問字典就可以得到有序的字典。
實現代碼1.怎麼創建分類
在Xcode8中創建分類
Command + N 創建新的文件
選擇分類(category), 集成的類選擇NSDictionary
2.實現代碼
//在.h文件中聲明要使用的方法名
/*****************獲取升序鍵值*********************/
- (NSArray *)nk_ascendingComparedAllKeys;
/*****************獲取降序鍵值*********************/
- (NSArray *)nk_descendingComparedAllKeys;
//在.m文件中將聲明的方法實現
- (NSArray *)nk_ascendingComparedAllKeys
{
NSArray *allKeys = [self keysSortedByValueUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
if ([obj1 integerValue] > [obj2 integerValue])
{
return (NSComparisonResult)NSOrderedAscending;
}
if ([obj1 integerValue] < [obj2 integerValue])
{
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}];
return allKeys;
}
- (NSArray *)nk_descendingComparedAllKeys
{
NSArray *allKeys = [self keysSortedByValueUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
if ([obj1 integerValue] < [obj2 integerValue])
{
return (NSComparisonResult)NSOrderedAscending;
}
if ([obj1 integerValue] > [obj2 integerValue])
{
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}];
return allKeys;
}
補充說明
類擴展
作用
1.能為某個類附加額外的屬性,成員變量,方法聲明
2.一般類擴展寫到.m文件中
3.一般私有屬性寫到類擴展
格式
@interface Mitchell()
//屬性
//方法
@end
與分類的區別 【iOS使用分類(category)實現有序字典】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!