У меня возникла странная проблема, которая вызывает у меня довольно головную боль. Я инициализирую объект NSArray, используя initWithObjects. Я передаю 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]);
}
Есть ли у меня тип-o где-то, что мне не хватает? Вы можете видеть, что я передаю 7 объектов в инициализатор массива, но метод NSLog показывает [newRow count] = 3.
nhahtdh является правильным. Посмотрите на его сообщение ниже. В методе 'initWithObjects' передача' nil' в качестве параметра сигнализирует, что это последний переданный объект. На стороне примечания я бы рекомендовал использовать 'NSURL' вместо' NSString' для вашего параметра picFile, поскольку NSURLs более эффективны при хранении данных пути. Проверьте этот вопрос для получения дополнительной информации о NSURL и NSStrings: –
pasawaya