繁体   English   中英

如何从NSMutableArray复制到NSMutableString?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM