iphone - 在 for 循环中附加字符串 (NSString) 时遇到问题

标签 iphone objective-c cocoa string nsstring

好的,我正在从在线数据源中提取给定邮政编码的地址列表。请求向我发送一个数组数组的 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/

相关文章:

iphone - iOS:UIStepper:更改值更新的速度?

iPhone iOS 如何将文本从 UITextView 导出到文本文件以进行跨平台编辑? (Mac、PC、iPhone 等)

iphone - 如何测量iphone自由落体运动的距离?

javascript - 钛移动开发平台

iphone - iOS 5 Twitter Framework & completionHandler block - "Capturing ' self 在这个 block 中很可能导致保留周期”

iphone - 如何检查用户输入的电话号码在 Objective c 中是否有效?

macos - 一个窗口中的swift cocoa(OSX)IBAction无法在独立窗口NSView中调用函数

macos - 如何在 macOS 中启动后台进程?

swift - 插入光标颜色和大小

ios - 在 iOS 和 OpenGLES 2.0 中使用 sampler3D 纹理的 texture3D 查找是否可用