2013-10-28 84 views
1

好吧,我會保持這個簡單。我正在嘗試將arraydictionaries寫入一個命令行程序,該程序將生成我編寫的應用程序所需的plist在命令行工具中沒有可見的@interface for NSDictionary

問題是,該程序不喜歡這個事實,沒有一個@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]; 
    } 
} 

我遵醫囑在蘋果開發論壇這個代碼,所以這不是我已經熟了,我以爲這是通常是正確的(這裏來約講課的假設),那麼東西告訴我有在其他地方的問題,我沒有看到的代碼。

NSArray被稱爲dictionaryArray被聲明,並且它沒有錯誤。它位於雙註釋之上的單行。

這裏的錯誤,逐字

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

任何解決方案?

回答

4

使用NSMutableDictionary,而不是NSDictionary。您不能在NSDictionary中設置對象。您只能在NSDictionary對象的初始化中添加對象NSDictionary對象。

+0

我發佈後立即意識到這一點,並立即稱自己一串咒罵。儘管如此,仍然很好。 – ecfedele

相關問題