我试图在NSMutableArray中添加一些字符串,而不是想复制元素0(零) 从NSMutableArray到NSMutableString
[MS appendString:str]
此行引发错误。
有什么问题? 一个MutableArray元素不能分配给NSString? (感谢任何回复)
错误输出是:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFNumber长度]:无法识别的选择器发送到实例0x6c82440'
这是我的代码:
NSMutableArray *A=[[NSMutableArray alloc]init];
NSMutableString *MS=[NSMutableString stringWithString:@"first"];
for (int i=0; i<=15;i+=2) {
[A addObject:[NSNumber numberWithInteger:i]];
}
NSString *str;
for (int x=0; x<[A count]; x++) {
str=[A objectAtIndex:0];
[MS appendString:str];//ERROR HERE
}
[A release];
答案 0 :(得分:2)
您正在向数组中添加NSNumber
,而不是在对开的行中添加字符串:
[A addObject:[NSNumber numberWithInteger:i]]; // here you are adding numbers
因此,当您稍后从数组中读取它们时,它们是仍然数字,您必须从它们创建字符串:
NSString *str;
NSNumber *number;
for (int x=0; x<[A count]; x++) {
number = [A objectAtIndex:0]; // You should probably replace 0 by x here.
str = [number stringValue]; // transform number into a string
[MS appendString:str];
}
[A release];
但是如果你想让数组存储字符串而不是数字,那么用以下内容替换第一个循环:
for (int i=0; i<=15;i+=2) {
[A addObject:[[NSNumber numberWithInteger:i] stringValue]];
}
或者
for (int i=0; i<=15;i+=2) {
[A addObject:[NSString stringWithFormat:@"%d", i]];
}