我有一个小型 C# 库,我正在尝试将其移植(实际上是使用它作为指南重写 C# 代码)到 Obj-C。该库的目的是为 iOS 日历应用程序生成定期约会。我在将 C# 结构移植到 Obj-C 对象时遇到问题。这是我对保存约会信息的结构之一所拥有的:
@interface Appointment : NSObject {
@public
NSDate *apptStartTime;
NSDate *apptEndTime;
NSString *key;
}
@end
我编写的其中一个方法接受一个日期、一组时间表(也是 C# 的一个端口struct
)和约会列表(我使用的NSMutableSet
是包含上述 Appointment 接口的)。如果我可以让约会方法起作用,我很确定我可以找出其余的(我认为)。这是将约会添加到的代码NSMutableSet
:
-(void) addAppointmentsForDate:(NSDate *)checkDate andSchedules: (NSMutableSet *)schedules andAppt:(NSMutableSet *)appointments {
Appointment *appt = [[Appointment alloc]init];
for(NSMutableSet *schedule in schedules) {
if(schedule.occursOnDate(checkDate)) {
appt = [self generateAppointment:checkDate andSchedule: [schedules removeObject:schedules]];
[appointments addObject: appt];
}
}
}
-(Appointment *) generateAppointment: (NSDate *) checkDate andSchedule: (Schedule *) schedule {
Appointment *appt = [[Appointment alloc]init];
appt->apptStartTime = schedule->timeOfAppointment;
appt->apptEndTime = nil; // TODO
appt->key = schedule->key;
return appt;
}
我在if
声明中遇到构建错误:
将“void”发送到不兼容类型“Schedule *”的参数
我以前从未使用NSMutableSets
过,也没有尝试过从 C# 移植。如您所见,我正在使用 C# 结构的端口。我已经阅读了所有关于集合的 Apple 文档,以及一些解释 C# 和 Obj-C 之间差异的文档。
有人可以解释我做错了什么,或者指出一些好的文档可以给我一个在集合中引用元素的例子吗?