Невозможно добавить элементы в NSMutableArray ivar - PullRequest
0 голосов
/ 19 августа 2011

Моя цель - добавить строку в массив, и я делаю это в методе, который я вызываю.

В этом методе я получаю нулевое значение в массиве и не знаю почему.У меня есть это в начале моего класса:

NSMutableArray *listOfEvents;

и метод, который я вызываю для каждого события:

-(void)EventList
{
    [listOfEvents addObject:@"ran"];
    NSLog(@"%@", listOfEvents);     
}

Я получаю (null) в журнале.

Если я добавлю определение массива NSMutableArray *listOfEvents; в тело функции, я получу строковое значение @"ran" каждый раз, поэтому массив всегда имеет только одно значение вместо множества строк с именем @"ran".

Что с этим не так?Кажется, я не могу понять что-то о массивах, хотя я несколько раз читал документы.

Ответы [ 4 ]

5 голосов
/ 19 августа 2011

Я предполагаю, что вы не инициализировали listOfEvents.

Убедитесь, что вы используете listOfEvents = [[NSMutableArray alloc] init]; в методе init вашего класса. Также убедитесь, что вы выпустили его в методе dealloc вашего класса.

3 голосов
/ 19 августа 2011

Если вы получаете nil в сообщении журнала, вам нужно убедиться, что listOfEvents не равен nil, прежде чем добавлять свой объект.IE:

-(void)EventList
{
    if (listOfEvents == nil) {
        listOfEvents = [[NSMutableArray alloc] init];
    }
    [listOfEvents addObject:@"ran"];
    NSLog(@"%@",listOfEvents);      
}

В Objective-C сообщения с void типами возврата, отправляемыми на nil, отправляются на абсолютно бесшумный нигде-земельный участок., ради баланса, убедитесь, что в вашей реализации dealloc есть вызов [listOfEvents release].

1 голос
/ 19 августа 2011

Вам нужно alloc NSMutableArray. Попробуйте сделать это первым -

NSMutableArray *listOfEvents = [[NSMutableArray alloc] init];

После этого вы можете делать то, что вы запланировали ...

1 голос
/ 19 августа 2011

Видимо, вы не инициализируете свой массив.

NSMutableArray *listOfEvents = [[NSMutableArray alloc] init];

Если это ваша проблема, я предлагаю снова прочитать документы.И не документы NSMutableArray.Вернуться к Язык программирования Objective-C и другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...