我正在创建一个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);
}
答案 0 :(得分:1)
分配后,您不应再次分配数组。 arrayByAddingObject
返回自动发布的新数组。如果要动态添加对象,也请使用NSMutableArray
。
将代码更改为
test = [[NSMutableArray alloc]init];
[test addObject:timestr];
答案 1 :(得分:1)
你必须声明数组可变对象。
test = [[NSMutableArray alloc]init];
[test addObject:timestr];
答案 2 :(得分:1)
如果您想在创建后更改它,则应使用NSMutableArray
。
NSMutableArray* arr = [[NSMutableArray alloc] init];
[arr addObject:timestr];
要创建包含单个对象的数组,可以使用:
NSArray* arr = [NSArray arrayWithObject:timestr];
答案 3 :(得分:1)
您必须将arrayByAddingObject:
方法的结果分配给新的数组,如:
NSArray *newone = [test arrayByAddingObject:timestr];
答案 4 :(得分:0)
您应该使用NSMutableArray
及其方法addObject:
而不是NSArray。 [test arrayByAddingObject:timestr];
对您的数组测试没有任何作用,它创建新数组