我有一個數組,其中包含一些名稱(字符串)。按字母順序列出數組的內容
1.)我想按照字母順序在數組中列出這些名字。 2.)稍後我會爲這個數組添加更多的名字,所以它必須附加到這個數組中。
如何以編程方式執行此操作?
注意:我沒有任何代碼證明我的工作到目前爲止。我只是創建了一個數組。
編輯
如果我的數組聲明;
NSArray *array = [NSArray arrayWithObjects:@"A",@"C",@"B", @"M",nil];
我該如何排序呢?
我有一個數組,其中包含一些名稱(字符串)。按字母順序列出數組的內容
1.)我想按照字母順序在數組中列出這些名字。 2.)稍後我會爲這個數組添加更多的名字,所以它必須附加到這個數組中。
如何以編程方式執行此操作?
注意:我沒有任何代碼證明我的工作到目前爲止。我只是創建了一個數組。
編輯
如果我的數組聲明;
NSArray *array = [NSArray arrayWithObjects:@"A",@"C",@"B", @"M",nil];
我該如何排序呢?
你確實應該嘗試習慣看文件 - 一旦你得到了它的竅門,你可以理出頭緒很快
爲NSArray的文檔給你數組排序的具體方式:
NSArray *array = [NSArray arrayWithObjects:@"A", @"C", @"B", @"M", nil];
NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
現在考慮你想要添加的對象後,你將最有可能使用的NSMutableArray
爲NSMutableArray的文檔顯示方法:
- (void)sortUsingSelector:(SEL)comparator
因此你可以使用
NSMutableArray *myMutableArray = [NSMutableArray arrayWithObjects:@"c", @"a", @"b", nil];
[myMutableArray sortUsingSelector:@selector(caseInsensitiveCompare:)];
這將排序您到位陣列導致
2012-01-10 17:47:11.477 Untitled[11904:707] (
a,
b,
c
)
+1 4個同時答案中最全面的答案。 – PengOne 2012-01-10 17:50:07
這將你需要的東西:
NSArray * sortedArray = [yourArray sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)];
當然,有些人可能會問,爲什麼你不問這個問題之前,請搜索Apple docs的「之類的陣列」。雖然不是我。我很樂意接受這些觀點!
這要求您對Array進行排序(並且在添加新值之後您需要執行此操作)。這很簡單:
NSArray *sortedArray = [myArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
這個例子會不區分大小寫 - 但你也可以區分大小寫。
我編輯了我的問題,請看看。我如何修改你的代碼到我的問題的編輯部分 – sharon 2012-01-10 17:51:40
如果您希望能夠稍後追加,那麼您應該使用NSArray
或NSDictionary
的可變類型。如果數組僅包含沒有其他數據關聯的名稱,則最簡單的方法是使用NSMutableArray
來存儲它們。
要按字母順序排列,可以使用NSArray
方法sortedArrayUsingSelector:
以及@selector(caseInsensitiveCompare:)
。這儘可能有效地爲您完成所有工作。
試着問一個問題之前,閱讀文檔。 – 2012-01-10 17:52:41
你的「數組聲明」是無效的代碼。請發佈您的真實代碼,並顯示您嘗試解決您自己的問題。 – 2012-01-10 18:25:44