如何解决将NSString附加到NSMutableString,引发异常
|| 我访问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];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。