Почему в следующем коде я не могу просто создать статический массив NSNumbers? Я бы просто использовал массивы C и целые числа, но их нельзя скопировать, и, как вы можете видеть в init(), мне нужно скопировать массив в другой. Ошибка, которую я получаю: «Элемент инициализатора не является постоянным». Это очень запутанно; Я даже не уверен, что это значит, учитывая, что у меня нигде нет ключевого слова const.
Кроме того, как примечание, метод getNextIngredient дает мне ошибку «невозможно использовать объект в качестве параметра метода» и «несовместимые типы в ответ», но я не уверен, почему.
Вот код:
// 1 = TOMATO
// 2 = LETTUCE
// 3 = CHEESE
// 4 = HAM
#import "Recipe.h"
@implementation Recipe
// List of hardcoded recipes
static NSArray *basicHam = [[NSArray alloc] initWithObjects:[[NSNumber alloc] numberwithInt:1], [[NSNumber alloc] numberwithInt:2], [[NSNumber alloc] numberWithInt:3], [[NSNumber alloc] numberwithInt:4]];
// Upon creation, check the name parameter that was passed in and set the current recipe to that particular array.
// Then, set nextIngredient to be the first ingredient of that recipe, so that Game can check it.
-(id) initWithName: (NSString*)name {
self = [super init];
indexOfNext = 0;
if (self) {
if ([name isEqualToString: @"Basic Ham"]) {
currRecipe = [NSArray arrayWithArray: basicHam];
}
}
}
-(NSNumber) getNextIngredient {
return [currRecipe objectAtIndex:indexOfNext];
}