命令行实用程序中 NSDictionary 没有可见的 @interface

ecf*_*ele 3 command-line objective-c nsdictionary

好吧,我会保持简单。我正在尝试将一个array写入dictionaries命令行程序,该程序将生成plist我正在编写的应用程序所需的内容。

\n\n

问题是,该程序不喜欢没有一个@interface部分的事实,这让我感到困惑,但话又说回来,我是新手Objective-C,并且正在寻找自己的立足点。用这种语言可以做很多事情,但我仍然忽略了很多错误。当你回答时请记住这一点 - 对你来说显而易见的事情对我来说不一定是显而易见的。

\n\n
#import <Foundation/Foundation.h>\n\nint main(int argc, const char * argv[])\n{\n\n    @autoreleasepool\n    {\n        // Add first dictionary below:\n        // 1:\n        NSDictionary *Dict1 = [NSMutableDictionary new];\n       [Dict1 setObject: @"Back-2.png" forKey:@"ImageName"];\n       [Dict1 setObject: [NSNumber numberWithBool: NO] forKey:@"HidePair1"];\n       [Dict1 setObject: [NSNumber numberWithBool: NO] forKey:@"HidePair2"];\n       [Dict1 setObject: [NSNumber numberWithBool: YES] forKey:@"HidePair3"];\n       [Dict1 setObject: [NSNumber numberWithBool: YES] forKey:@"HidePair4"];\n       [Dict1 setObject: [NSNumber numberWithBool: YES] forKey:@"HidePair5"];\n       [Dict1 setObject: @"Mass (kg)" forKey: @"Label1"];\n       [Dict1 setObject: @"Velocity (m/s)" forKey: @"Label2"];\n       [Dict1 setObject: @"null" forKey: @"Label3"];\n       [Dict1 setObject: @"null" forKey: @"Label4"];\n       [Dict1 setObject: @"null" forKey: @"Label5"];\n       [Dict1 setObject: @"kg \xe2\x80\xa2 m/s" forKey: @"Units"];\n       [dictionaryArray addObject: Dict1];\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在 Apple Dev 论坛上被规定了这段代码,所以这不是我编造的东西,我认为它通常是正确的(这里有关于假设的讲座),所以有些东西告诉我在其他地方存在问题我没有看到的代码。

\n\n

被调用的被NSArray声明dictionaryArray并且没有错误。它位于双注释上方的一行中。

\n\n

这是错误,逐字记录

\n\n
\'No visible @interface for \'NSDictionary\' declares the selector \'setObject: forKey:\'\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

有什么解决办法吗?

\n

Tam*_*ing 5

使用NSMutableDictionary而不是NSDictionary. 您无法在 中设置对象NSDictionaryNSDictionary您只能在对象初始化时添加对象NSDictionary