问题描述
||
我访问NSMutableArray(nid)的特定元素,并将其保存在Nsstring(num)中。
之后,我想将此元素(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];
解决方法
-[NSCFNumber长度]:无法识别的选择器已发送到实例0x4b54de0
*由于未捕获的异常而终止应用程序
\'NSInvalidArgumentException \',原因:
\'-[NSCFNumber长度]:无法识别
选择器发送到实例0x4b54de0 \'
根据例外,看起来
objectAtIndex:
返回NSNumber
而不是of3ѭ。如果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];
, nid是一个array
,它返回一个数字而不是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];