我有一个小型的C#库,我正在尝试将它移植到Obj(实际上是用它作为指南重写C#代码)。库的目的是为iOS日历应用程序生成定期约会。我在将C#结构移植到Obj对象时遇到了问题。对于保存约会信息的结构之一,这就是我所拥有的:
@interface Appointment : NSObject {
@public
NSDate *apptStartTime;
NSDate *apptEndTime;
NSString *key;
}
@end我编写的方法之一接受日期、一组日程(也是C# struct的端口)和约会列表(我使用的是包含上述约会接口的NSMutableSet )。如果我能让约会方法起作用,我很确定我能算出剩下的(我想)。这是将约会添加到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#结构的端口。我阅读了所有的苹果文档集,和几个文档,解释了C#和Obj之间的区别。
有人能不能解释一下我做错了什么,或者向我指出一些好的文档,可以给我一个在集合中引用元素的例子?
发布于 2014-03-07 23:51:09
而不是这样:
@interface Appointment : NSObject {
@public
NSDate *apptStartTime;
NSDate *apptEndTime;
NSString *key;
}
@end请写
@interface Appointment : NSObject
@property (readwrite, nonatomic, strong) NSDate* startTime;
@property (readwrite, nonatomic, strong) NSDate* endTime;
@property (readwrite, nonatomic, strong) NSString* key;
@end发布于 2014-03-07 23:44:48
看一看代码,我的印象是您不太确定您是在编写C++代码还是Objective代码。
if(schedule.occursOnDate(checkDate))如何再一次调用Objective方法?
for(NSMutableSet *schedule in schedules)这事你肯定吗?附表是一个NSMutableSet*。那么,您是说您的计划可变集的元素又是可变的集合吗?很不寻常,但如果你这么说.
appt = [self generateAppointment:checkDate andSchedule: [schedules removeObject:schedules]];这可真够奇怪的。你觉得是什么
[schedules removeObject:schedules]要做什么?您希望集合本身作为一个元素吗?
我的建议是上床睡觉。睡十个小时。吃完早餐后,再看看你的代码。
https://stackoverflow.com/questions/22262494
复制相似问题