我的代碼:的Objective-C的NSMutableArray的setValue forKey問題
NSArray *array = //objects here
NSMutableArray *mutarray = [[NSMutableArray alloc] init];
for (NSString *s in array)
{
NSRange ran = [s rangeOfString:@"abc"];
if (ran.location != NSNotFound)
{
int inde = [array indexOfObject:s];
[mutarray setValue:[NSNumber numberWithInt:inde] forKey:s];
}
}
NSLog (@"mutarray: %@", mutarray);
我已經試過的NSMutableDictionary,但內容是無序的,所以我更喜歡的NSMutableArray存儲值和鍵有序。但是NSLog的輸出沒有顯示任何內容,到底是什麼? NSMutableDictionary的輸出顯示了四個發現。
編輯:
我甚至試圖在的NSLog面前這個代碼,但沒有顯示:
[mutarray setValue:@"aha" forKey:@"jaha"];
編輯: 夥計們,感謝您的回答!現在我明白了。但問題是我將數字作爲值和字符串存儲爲鍵。我有一個無序的NSMutableDictionary。我還沒有想出我應該如何訂購它。我有我使用的代碼,但它不正確寫入:
NSInteger intSort(id num1, id num2, void *context)
{
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return NSOrderedDescending;
else
return NSOrderedSame;
}
在其他方法:
NSArray *ordered = [[mutdic allValues] sortedArrayUsingFunction:intSort context:NULL];
NSLog (@" ordered: %@", ordered);
輸出只顯示:
2011-08-29 22:36:03.998 scanner2[32359:207] ordered: (
1,
5,
9,
16
)
的輸出應該顯示這個按數字順序排列:
2011-08-29 22:36:03.992 scanner2[32359:207] mutdic: 5 jam (geologi) en
2011-08-29 22:36:03.993 scanner2[32359:207] mutdic: 9 jax. (geologi)jammen
2011-08-29 22:36:03.994 scanner2[32359:207] mutdic: 1 beta (geologi).
2011-08-29 22:36:03.995 scanner2[32359:207] mutdic: 16 .(geologi),be;ta;
這是我需要的第二個選項!我愛你:D – wagashi