好的,我正在从在线数据源中提取给定邮政编码的地址列表。请求向我发送一个数组数组的 JSON,数组的第一层是字符串数组。
这些包含例如。
Addressline1, Addressline2, Town, Country, Postcode
我需要将每个地址的所有这些字符串添加在一起,这样每个地址只有 1 个工作字符串。然而,有时数组中会有一个空白字段@""
。
这是我的 for 循环。
id object;
NSString *startString = [NSString stringWithString:@"testStart:"];
for (object in arrayContainingAddress) {
NSString *useableString = [NSString stringWithFormat:@"%@", object];
if (![useableString isEqualToString:@""]) {
NSLog(@"%@", useableString);
[startString stringByAppendingString:useableString];
NSLog(@"%@", startString);
}
}
NSLog(@"%@", startString);
问题是,startString 总是在最后以“testStart:”的形式注销,但 useableString 日志包含正确的地址行、城镇等,for 循环中的 startString NSLog 也只是以“testStart:”的形式注销。
这整个代码块位于 while 循环内,该循环将“arrayContainingAddress”切换为每个地址的适当数组。
“id 对象”的原因是我的 JSON 转换有时会将值转换为 NSNumber(地址的第一行可能是门牌号,例如 123),因此我在这里防止崩溃。
TLDR:字符串“startString”未在我的 for 循环中附加。
最佳答案
stringByAppendingString
不会对调用它的字符串执行任何操作。它返回一个新的自动释放字符串,它是两者的串联。
您想要做的是将 startString 设为可变字符串:
NSMutableString *startString = [NSMutableString stringWithString:@"testStart:"];
然后使用appendString
方法:
[startString appendString:useableString];
关于iphone - 在 for 循环中附加字符串 (NSString) 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121712/