2

好吧,我会保持这个简单。我正在尝试将arrayofdictionaries写入一个命令行程序,该程序将为plist我正在编写的应用程序生成一个我需要的。

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

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool
    {
        // Add first dictionary below:
        // 1:
        NSDictionary *Dict1 = [NSMutableDictionary new];
       [Dict1 setObject: @"Back-2.png" forKey:@"ImageName"];
       [Dict1 setObject: [NSNumber numberWithBool: NO] forKey:@"HidePair1"];
       [Dict1 setObject: [NSNumber numberWithBool: NO] forKey:@"HidePair2"];
       [Dict1 setObject: [NSNumber numberWithBool: YES] forKey:@"HidePair3"];
       [Dict1 setObject: [NSNumber numberWithBool: YES] forKey:@"HidePair4"];
       [Dict1 setObject: [NSNumber numberWithBool: YES] forKey:@"HidePair5"];
       [Dict1 setObject: @"Mass (kg)" forKey: @"Label1"];
       [Dict1 setObject: @"Velocity (m/s)" forKey: @"Label2"];
       [Dict1 setObject: @"null" forKey: @"Label3"];
       [Dict1 setObject: @"null" forKey: @"Label4"];
       [Dict1 setObject: @"null" forKey: @"Label5"];
       [Dict1 setObject: @"kg • m/s" forKey: @"Units"];
       [dictionaryArray addObject: Dict1];
    }
}

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

NSArray调用dictionaryArray者被声明并且没有错误。它在双注释正上方的单行中。

这是错误,逐字

'No visible @interface for 'NSDictionary' declares the selector 'setObject: forKey:''

有什么解决办法吗?

4

1 回答 1

4

使用NSMutableDictionary而不是NSDictionary. 您不能在NSDictionary. 您NSDictionary只能在对象的初始化中添加NSDictionary对象。

于 2013-10-28T06:47:54.007 回答