2011-06-11 78 views
1

我訪問NSMutableArray(nid)的特定元素並將其保存在NSString(num)中。將NSString附加到NSMutableString,引發異常

之後,我想連接這個元素(num)與url(NSMutableString),並使用appendString方法,但我得到一個異常。

我該如何解決這個問題?

下面的代碼:

NSMutableArray nid; 
.... 

NSUInteger row = [indexPath row]; 
NSString *num = [nid objectAtIndex:row]; 

NSMutableString *url = [[NSMutableString alloc] 
         initWithString:@"http://example.com/prova/"]; 

[url appendString:num]; 
+1

什麼姓名o你得到的例外嗎? – Jhaliya 2011-06-11 17:36:42

+0

- [NSCFNumber長度]:無法識別的選擇發送到實例0x4b54de0 ***由於未捕獲的異常'NSInvalidArgumentException',原因:' - [NSCFNumber長度]:無法識別的選擇發送到實例0x4b54de0' – davideagostini 2011-06-11 17:38:42

+0

如何填充nid?你肯定'objectAtIndex:'返回一個字符串嗎? – albertamg 2011-06-11 17:39:02

回答

4

- [NSCFNumber長度]:無法識別的選擇發送到實例0x4b54de0 *終止應用程序由於未捕獲的異常 'NSInvalidArgumentException' 的,原因: ' - [NSCFNumber長度]:無法識別 選擇器發送到實例0x4b54de0'

根據例外情況,它看起來像objectAtIndex:正在返回NSNumber而不是NSString。如果nid包含數字,你需要將它們轉換爲字符串,然後才能將它們傳遞到appendString

NSUInteger row = [indexPath row]; 
NSNumber *num = [nid objectAtIndex:row]; 
NSString *numStr = [num stringValue]; 

NSMutableString *url = [[NSMutableString alloc] 
         initWithString:@"http://example.com/prova/"]; 

[url appendString:numStr]; 

... 

[url release]; 
+0

好的感謝信息。 – davideagostini 2011-06-11 18:01:09

+0

歡迎您:) – albertamg 2011-06-11 18:28:24

1

NIDarray這回不是一個NSString,所以是由下面的返回一個NSNumber的數聲明

NSString *num = [nid objectAtIndex:row]; // Wrong statement 

NSNumber* num = [nid objectAtIndex:row]; // Correct statement 

所以,你的代碼應該是..

NSMutableArray nid; 
.... 

NSUInteger row = [indexPath row]; 

//your array contain NSNumber type of pointer NOT NSString. 
NSNumber *num = [nid objectAtIndex:row]; 

//Get a NSString object from a NSNumber. 
NSString *myString = [num stringValue]; 

NSMutableString *url = [[NSMutableString alloc] 
         initWithString:@"http://example.com/prova/"]; 

[url appendString:myString]; 
+0

完美,現在它的作品。 非常感謝 – davideagostini 2011-06-11 17:54:09

+1

我可能只是'NSURL * url = [NSURL URLWithString:[NSString stringWithFormat:@「http://example.com/prova/%@」,[nid objectAtIndex:row]]];' .... – bbum 2011-06-11 17:55:06

+0

@ reb2awrl:很高興幫助你.. – Jhaliya 2011-06-11 17:55:08