2012-06-02 106 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