ios - for循环后,未知引号添加到NSMutableArray中的字符串对象

标签 ios objective-c nsstring

我有一个NSString对象数组,这些对象包含一些不必要的字符(一个对象在控制台中看起来像这样:"\"stringContent\""),我将使用以下代码删除它们。它可以正常工作,但是当我登录arr1时,有50-60%的字符串都带有引号,例如"stringContent",其他字符串则没有。实际上,我的问题是我没有发生这种情况的原因,因为当我在for循环中记录字符串时,它们没有引号。有人知道会导致这种情况的原因吗?

NSMutableArray * arr1 = [[NSMutableArray alloc ]init];

for (NSString *str in self.stringArray) {

    NSString *newString = [str substringToIndex:[brand length]-1];

    NSString *nwstr = [newString substringFromIndex:1];

    [arr1 addObject:nwstr];

    NSLog(@"string %@", nwstr);

}
NSLog(@"array %@", arr1);

其他可能有所帮助的事情是,当我将其称为控制台中出现的每个对象时,好像对containsString方法隐藏了引号,因为其中许多不满足if语句的要求。
for (NSString *str in arr1) {


    if (![str containsString:@"\""]) {


        NSLog(@"XXX %@", str);

    }
}

最佳答案

当您使用NSLog记录NSArray或NSDictionary时,将以日志格式显示元素,该格式可以(或可以不)包含多余的引号,转义字符等。特别是,在字符串周围使用引号,当字符串中不包含非-时除外。字母字符或空格。

更详细的信息:实际上发生的是NSLog在内部调用[NSString stringWithFormat:]或其同类之一来格式化要记录的文本。 stringWithFormat:依次调用参数列表中与description格式指令相对应的每个对象的%@方法。 NSArray和NSDictionary的description方法添加了额外的字符。

关于ios - for循环后,未知引号添加到NSMutableArray中的字符串对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322465/

相关文章:

IOS:在uitableview中跳转一个位置

iphone - iOS - 在应用商店加载下载页面?

ios - Xcode Ad Hoc 和 IOS Team Provisioning Profile 有什么区别

ios - 没有从纬度和经度获得正确的地址

objective-c - 在 ios 延迟后启动 UIActivityIndi​​cator

ios - 将阿拉伯语 NSString 转换为 IOS 中的解码字符串

iphone - 在 NSThread 中使用 Singleton 同步数组

objective-c - 如何检索与订阅相关的 youtube 视频

objective-c - NSString : number of a word

ios - 大小可以为 -[NSString drawInRect :] be determined by the string's content?