错误:无法识别的选择器尝试记录NSArray的内容

时间:2014-03-15 18:32:46

标签: objective-c ios7 nsarray

我有这段代码:

//  create the NSMutableArray for appointment objects
NSMutableArray *apptArray = [[NSMutableArray alloc]init];  //  capacity not limited by the 5

CalendarGenerator *cg = [[CalendarGenerator alloc]init];
[apptArray addObject: [cg generateCalendar:period scheduleArray: scheduleArray]];  //  will add good appointment to array

Appointment *aa = [[Appointment alloc]init];
for(int i = 0; i < apptArray.count; i++)  {
    aa = apptArray[i];

    NSLog(@"\n\nstartTime: %@\nendTime: %@\nkey: %@", aa.startTime, aa.endTime, aa.clientKey);
}

**更新:**这是Appointment.h文件:

@interface Appointment : NSObject  { 

}

@property (nonatomic, strong) NSDate *startTime;
@property (nonatomic, strong) NSDate *endTime;
@property (nonatomic, strong) NSString *clientKey;

@end

数据如下所示:

enter image description here

我在模拟器中调试时遇到此运行时错误:

  

' - [__ NSArrayM startTime]:无法识别的选择器发送到实例

我花了大约3个小时尝试不同的事情,而不是工作;而且我仍然没有看到什么是错的......如果有人可以帮助我,我会很感激吗?

2 个答案:

答案 0 :(得分:4)

看起来像generateCalendar:scheduleArray:返回一个数组,而不是约会。将约会分配出来用于循环也是不好的,而不是在周期中使用。例如:

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

CalendarGenerator *cg = [[CalendarGenerator alloc] init];
[apptArray addObjectsFromArray:[cg generateCalendar:period scheduleArray:scheduleArray]];

for(Appointment *appointment in apptArray)
{
    NSLog(@"\n\nstartTime: %@\nendTime: %@\nkey: %@", appointment.startTime, appointment.endTime, appointment.clientKey);
}

答案 1 :(得分:1)

在日志中非常清楚,&#39; aa&#39; object是一个数组。这就是你收到错误的原因。但你正在使用它作为约会。

用[apptArray [i] firstObject]或[apptArray [i] objectAtIndex:0]替换此apptArray [i]。它应该工作。但它的临时解决方案。你必须修复apptArray的结构。