2012-06-02 108 views
0

我遇到了一個奇怪的問題,導致我非常頭疼。我正在使用initWithObjects初始化一個NSArray對象。我傳遞了7個對象,但後面緊跟着後面的數字,如果我記錄數組的數量,我只有3個數。有沒有其他人看過這個?我已經無數次地使用了這個方法,之前沒有任何問題,我看不出我做錯了什麼。代碼如下:NSArray initWithObjects只使用一些對象進行初始化

-(DMORecipe *) saveRecipe:(NSNumber *)recipeID recipeTitle:(NSString *)title recipeDescription:(NSString *)description pictureFile:(NSString *)picFile preparationTime:(NSString *)prepTime cookingTime:(NSString *)cookTime ovenTemperature:(NSString *)ovenTemp { 
    NSArray *newRow = [[NSArray alloc] initWithObjects:recipeID,title, description, picFile, prepTime, cookTime, ovenTemp, nil]; 
    NSLog(@"Before update, the number of args is %i", [newRow count]); 
} 

我在某處丟失了什麼類型的文件嗎?你可以看到我將7個對象傳遞給數組初始值設定項,但NSLog方法顯示[newRow count] = 3.

+0

nhahtdh是正確的。看看他的帖子。在'initWithObjects'方法中,傳遞'nil'作爲參數表明這是最後一個傳入的對象。在附註中,我建議使用NSURL而不是'NSString'作爲picFile參數,因爲NSURLs在存儲路徑數據時效率更高。看看這個問題的NSURLs和NSStrings的更多信息: pasawaya

回答

2

如果傳入的任何對象是nil,則其餘參數將被忽略。

在這種情況下,picFile似乎是nil