你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS使用分類(category)實現有序字典

iOS使用分類(category)實現有序字典

編輯:IOS開發綜合

IOS使用分類(category)實現有序字典 什麼是分類

OC中為了對類的方法進行擴展,添加了分類的概念。

分類能夠做到的事情主要是:即使在你不知道一個類的源碼情況下,向這個類添加擴展的方法。

關於字典

OC中字典是無序的,如果想創建有序字典,可以在字典中添加一個有序數組,數組中保存有順序的key值,按照數組key值的順序去訪問字典就可以得到有序的字典。

實現代碼

1.怎麼創建分類

在Xcode8中創建分類
Command + N 創建新的文件

IOS使用分類(category)實現有序字典

選擇分類(category), 集成的類選擇NSDictionary
IOS使用分類(category)實現有序字典

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
與分類的區別
1.分類的小括號必須有名字
2.分類只能擴充方法,不能擴充屬性和成員變量
3.如果分類生命了一個屬性,那麼分類只會生成這個屬性的set、get方法聲明,並不會實現

以上就是iOS使用分類(category)實現有序字典的全文介紹,希望對您學習和使用ios應用開發有所幫助.

【iOS使用分類(category)實現有序字典】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved