尽管在其中添加了对象,但数组仍然是空的

时间:2013-11-26 11:31:08

标签: objective-c arrays

我有一个数组,我在其中添加对象,但即使添加了对象,数组也保持为空。以下是代码:

Event.h

@interface Event : NSObject
@property NSString *name;
@end

将对象添加到数组的代码

NSMutableArray *events;
NSArray *event_string = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich", @"Creme Brelee", @"White Chocolate Donut", @"Starbucks Coffee", @"Vegetable Curry", @"Instant Noodle with Egg", @"Noodle with BBQ Pork", @"Japanese Noodle with Pork", @"Green Tea", @"Thai Shrimp Cake", @"Angry Birds Cake", @"Ham and Cheese Panini", nil];

    for (NSString *currentEventString in event_string) {
        Event *currentEvent = [Event new];
        [currentEvent setName:currentEventString];
        [events addObject:currentEvent];

    }
    NSLog(@"Number of events:%d",[events count]);

我收到了这个输出:

Number of events:0

3 个答案:

答案 0 :(得分:3)

你必须先启动这个数组。

NSMutableArray *events = [NSMutableArray new];

答案 1 :(得分:2)

您必须按以下方式启动事件数组:

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

答案 2 :(得分:2)

Tomasz说 - 你需要分配和初始化你的数组。现在,指向数组对象的指针为空。

您得到奇怪结果的原因是Objective C(与Java,C ++和C#等语言不同)很乐意让您调用null对象上的方法而不会崩溃或抛出异常。结果是“0”值,例如指针/对象为null,计算为0等。

它有点不同,但实践中效果很好,并且简化了许多算法。

相关问题