2012-05-04 32 views
0

我有一個問題,當我嘗試結合2 NSString結合2串在Objective-C

我提取2 NSSring形式的JSON和它的圖是:

thumbList:( 「picture1.jpg」 「picture2.jpg」, 「picture3.jpg」 ...)

fullnameList:( 「NAME1」, 「NAME2」, 「NAME3」 ...)

我的本意是他們團結成一個使用以下方案: (「name1」,「picture1.jpg」,「name2」,「 picture2.jpg」, 「NAME3」, 「picture3.jpg」 ...)

NSArray *array_webdata=[[NSArray array] init]; 

NSString *searchStatus = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];  
array_webdata = [parsedata objectWithString:searchStatus error:nil]; 

//String with all data of each user 
NSString *usersList = [array_webdata valueForKey:@"results"];  
NSLog(@"\n results? = %@ \n", usersList); 

//String with thumbs 
NSString *thumbList = [usersList valueForKey:@"thumb"]; 
NSLog(@"\n thumbs? = %@ \n", thumbList); 

//String with usernames 
NSString *fullnameList = [usersList valueForKey:@"fullname"]; 
NSLog(@"\n fullnames? = %@ \n", fullnameList); 


NSMutableIndexSet *indexes = [NSMutableIndexSet indexSetWithIndex:1]; 
[indexes addIndex:3];  
[fullnameList insertObjects:thumbList atIndexes:indexes]; 
NSLog(@"array: %@", fullnameList); 

但是,當我嘗試執行顯示一個錯誤信息:[__NSArrayI insertObjects:atIndexes:]:無法識別的選擇發送到實例。

任何人都可以幫我嗎? 「

+0

「insertObjects:atIndexes:」不能與nsstring一起使用... – sandy

+0

這不是一個NSString問題。問題在於,當他應該將'fullnameList'創建爲'NSMutableArray'時,他正在調用insertObject:atIndexes:在'NSArray'(不可變)上。 –

+0

bt他declarfed fullnameList作爲nsstring對嗎? – sandy

回答

1

您應該使用

NSMutableDictionary* dataDict = [NSMutableDictionary dictionaryWithObjects:picturesList forKeys:namesList]; 
// Whenever key needed for fetching record from Dictionary just write  
NSArray* keyArr = [dataDict AllKey]; 

現在你把所有的關鍵,你可以用上面的鍵的幫助下獲取記錄。

1

全部」發送到實例的無法識別的選擇器「。錯誤的含義相同:你認爲某個對象有一個方法,但它在運行時確實沒有。

由於Objective-C的動態性質,如果你不知道某個對象具有你應該總是測試調用respondsToSelector方法:這樣的:

if ([myObj respondsToSelector:@selector(someMethod)]) { 
    [myObj someMethod]; 
} 

在這種情況下,

NSString *fullnameList = [usersList valueForKey:@"fullname"]; 

是一個NSString。該類沒有insertObjects:atIndexes:方法。也許你必須把它聲明爲一個NSMutableArray

+0

如果我改變那樣的行:NSMutableArray * fullnameList = [usersList valueForKey:@「fullname」]; 錯誤消息是相同的 –