我有一个名为日程表的课程,其中包含4个属性:
@interface Schedule : NSObject {
}
@property (strong, nonatomic) NSDate *apptStartTime;
@property (strong, nonatomic) NSDate *apptEndTime;
@property (strong, nonatomic) NSString *clientKey;
@property (strong, nonatomic) NSString *scheduleName;
-(BOOL) occursOnDate: (NSDate *) dateOfAppointment;
@end
我有另一个类,我之前使用数据创建了两个“Schedule”对象(用于测试)并将它们放在NSMutableSet中。这是代码:
// schedule1
Schedule *schedule1 = [[Schedule alloc]init];
schedule1.apptStartTime = scheduleStartDate; // today's date
schedule1.apptEndTime = [scheduleStartDate dateByAddingTimeInterval:60*60]; // add 1 hour
schedule1.clientKey = @"GeoffMarsh3911";
schedule1.scheduleName = @"schedule1";
// schedule2
Schedule *schedule2 = [[Schedule alloc]init]; // two days after schedule1
schedule2.apptStartTime = [scheduleStartDate dateByAddingTimeInterval:timeInterval*2]; // add two days to first appointment
schedule2.apptEndTime = [schedule2.apptStartTime dateByAddingTimeInterval:60*60]; // add 1 hour tpo start of appointment
schedule2.clientKey = @"KellieJellyBelly3878";
schedule2.scheduleName = @"schedule2";
// create NSMutableSet for schedule objects
NSMutableSet *setOfSchedules = [NSMutableSet setWithCapacity:5];
[setOfSchedules addObject:schedule1];
[setOfSchedules addObject:schedule2];
现在,我有另一个类,我尝试使用NSMutableSet中的 schedule 并将它们放在NSArray中,以便我可以使用它们,如下所示:
NSArray *scheduleList = [setOfSchedules allObjects];
问题是我似乎无法进入 scheduleList 中的字段,例如 apptStartTime ,所以我可以使用它(与另一个进行比较)约会等)。
有没有更好的方法来实现这一点,而不是将NSMutableSet放在NSArray中?如何访问NSArray中的各个字段?
答案 0 :(得分:1)
这样的事情可行:
for (Schedule *schedule in setOfSchedules) {
NSDate *startTime = schedule.apptStartTime;
// rest of your stuff
}
或者使用数组并更改for
循环以使用scheduleList
。
Schedule *schedule = scheduleList[someIndex];
NSDate *startTime = schedule.apptStartTime;
答案 1 :(得分:1)
您需要从NSArray中获取对象:
Schedule *schedule = [scheduleList objectAtIndex:0];
然后像往常一样访问schedule
对象的属性。
myTime = schedule.apptStartTime;
虽然在NSMutableSet和NSArray中同时使用对象没有多大意义。也许你可以摆脱其中一个?