Добавить динамически созданную строку в массив - PullRequest
0 голосов
/ 26 августа 2011

Я делаю приложение для iphone, в котором я хочу сохранить динамически выбранное время в массив, но не могу реализовать метод для сохранения строк в массивеНиже приведен код, который я использую, но он не дает вывод.

- (void)storetimeintoanarray:(id)sender
{
    NSDateFormatter *df3 = [[NSDateFormatter alloc] init];
    [df3 setDateFormat:@"hh:mm:ss"];
    timestr = [NSString stringWithFormat:@"%@",[df3 stringFromDate:objtimepicker.date]];
    NSLog(@"time is:%@",timestr);
    test = [[NSArray alloc]init];
    [test arrayByAddingObject:timestr];
    NSLog(@"array time:%@",test);
}

Ответы [ 5 ]

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

Необходимо присвоить результат метода arrayByAddingObject: новому массиву, например:

NSArray *newone = [test arrayByAddingObject:timestr];
1 голос
/ 26 августа 2011

Вы должны объявить изменяемый объект массива.

test = [[NSMutableArray alloc]init];
[test addObject:timestr];
1 голос
/ 26 августа 2011

Вы должны использовать NSMutableArray, если хотите изменить его после создания.

NSMutableArray* arr = [[NSMutableArray alloc] init];
[arr addObject:timestr];

Чтобы создать массив с одним объектом, вы можете использовать:

NSArray* arr = [NSArray arrayWithObject:timestr];
1 голос
/ 26 августа 2011

После выделения вам не следует снова выделять массив.arrayByAddingObject возвращает автоматически освобожденный новый массив.Также используйте NSMutableArray, если вы хотите динамически добавлять объекты.Измените код на

test = [[NSMutableArray alloc]init];
[test addObject:timestr];
0 голосов
/ 26 августа 2011

Вы должны использовать NSMutableArray и его метод addObject: вместо NSArray. [test arrayByAddingObject:timestr]; ничего не делает с вашим тестом массива, он создает новый массив

...