ios - 快速枚举错误?

标签 ios

得到警告说:

集合表达式类型“NSString *”可能不会响应“countByEnumeratingWithState:objects:count”

尝试运行以下代码时:

 NSString *proper = [NSString stringWithContentsOfFile:@"usr/share/dict/propernames"     encoding:NSUTF8StringEncoding error:NULL];


for (NSString *i in proper){
        NSLog(@"Item>%@", i);
        }

当我运行程序时,我没有从NSLog语句获得任何输出。有人碰到这个吗?

最佳答案

编译器警告试图告诉您您不能使用NSString循环遍历for ... in ...。除了原因之外,还试图说NSString不是有效的“集合”类型。有效的“集合”类型是NSArrayNSSetNSDictionary

因此,如果您的文件应包含结构化数据,则应将其解析为比纯NSString更有用的内容。这样的事情可能会带来更好的结果:

NSString* temp = [NSString stringWithContentsOfFile:@"usr/share/dict/propernames"     encoding:NSUTF8StringEncoding error:NULL];
NSArray* proper = [temp componentsSeparatedByString:@"\n"];

for (NSString* i in proper){
    NSLog(@"Item>%@", i);
}

这将打印文件中的每一行。当然,这假设您的输入文件每行只有一个条目。如果以其他方式构建它,则必须以不同的方式解析它。

关于ios - 快速枚举错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286227/

相关文章:

ios - 在 SpriteKit 中使用另一个场景的 boolean 值

ios - 在没有 Segue 的情况下实例化标签栏 Controller

ios - 更改市场中集群注释的颜色。 iOS, swift

ios - 如何处理 sql server 数据库中的 iOS 表情符号?

ios - 在前置摄像头 iOS Swift 中自动保存和捕捉照片

ios - 如何使用 SwiftyJSON 循环 JSON 对象数组?

ios - 在 UIViewController 中的何处设置属性

iphone - 访问关系的计数会引发错误吗?

ios - 无法正确安装pod

ios - 我可以将二进制形式的 iOS 应用程序传递给第三方应用程序商店进行代码签名吗?