[英]How to copy from NSMutableArray to NSMutableString?
我试图在NSMutableArray中添加一些字符串,而不是将元素0(零)从NSMutableArray复制到NSMutableString
[MS appendString:str]
这条线引起了错误。
问题是什么 ? 一个MutableArray元素不能分配给NSString? (感谢任何回复)
错误输出是:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [__ NSCFNumber length]:无法识别的选择器发送到实例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];
您正在向阵列添加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]];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.