2014-05-04 3 views
0
-(NSArray*)createArrayWithObjectsNamed:(NSString*)string{ 

    if (!_numberArray){ 
     [self createArrayOfNumbers]; 
    } 

    NSString *object; 
    NSMutableArray *mutableArray; 

    for (int i = 0; i <= 9; i++) { 
     object = [NSString stringWithFormat:@"%@%@",string,_numberArray[i]]; 
     NSLog(@"array %@",object); 
     [mutableArray addObject:object]; 
    } 

    NSLog(@"value of mutableArray %@",mutableArray); 

    NSArray *array; //= [NSArray arrayWithArray:mutableArray]; 

    array = [mutableArray copy]; 

    NSLog(@"array in func %@",array); 

    return array; 

} 

Привет, когда я бегу createArrayWithObjectNamed:string он должен запустить для постановки в десять раз, и в конце заявления каждый раз добавить новое значение объекта, но это не так. при запуске NSlog на mutableArray его значение (NULL).NSMutableArray значения не будучи Assigned

Что здесь общего не работает?

ответ

1

Ваша переменная mutableArray неинициализирована. В этом случае это nil, но вполне может быть какое-то произвольное значение, которое может вызвать исключение EXC_BAD_ACCESS при разыменовании.

NSMutableArray *mutableArray = [[NSMutableArray alloc] init]; 
+0

Будет ли он 'dealloc' сам после того, как метод вернул массив? – Mutch95

+1

Если вы используете ARC (Automatic Reference Counting), все будет работать нормально. В частности, 'alloc' увеличивает счет сохранения до 1, а затем компилятор будет вставлять сообщение' release' в 'mutableArray' непосредственно перед возвратом метода. – fumoboy007

Смежные вопросы