在组件'\ n'上将NSString拆分为NSArray

时间:2013-01-22 19:51:55

标签: iphone objective-c xcode nsstring nsarray

我正在尝试将NSString拆分为NSArray,尽管这通常很容易,但事实证明这很困难。我从我的Python服务器接收数据并在iPhone客户端上形成NSString。我注意到有时当我从Python服务器收到多条消息时,我会NSLog一个字符串,如:

Project: textOne
textTwo

将字符串添加到NSArray并在该数组上调用NSLog后,字符串将显示:

Project: (
    "textOne\ntextTwo\n"
)

玩完代码后:

[str componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];

[str componentsSeparatedByString:@"\n"];

[str substringToIndex:[str length]-1];

我设法制作了NSArray的内容:

Project: (
    "textOne",
    textTwo
)

Project: (
    "textOne",
    textTwo,
    ""
)

无法生成包含内容的NSArray

Project: (
        textOne,
        textTwo
    )

如果有人可以提供帮助,我会非常感激。

1 个答案:

答案 0 :(得分:4)

在使用stringByTrimmingCharactersInSet:分隔成组件之前修剪字符串,以防止在结尾或开始时出现空组件。

NSCharacterSet *separatorSet = [NSCharacterSet newlineCharacterSet];
NSString *trimmed = [str stringByTrimmingCharactersInSet:separatorSet];
[trimmed componentsSeparatedByCharactersInSet:separatorSet];

这不会阻止数组中间的空字符串。

另一种解决方案是在分离成组件后过滤掉任何不需要的字符串。