将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];
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...