嘿,我正在尝试将用户打开应用的日期与当前日期进行比较。 (基本上,他们有多长时间没有应用程序)
以下是代码:
- (NSInteger) daysAfterDate: (NSDate *) aDate
{
NSTimeInterval ti = [self timeIntervalSinceDate:aDate]; //#1
return (NSInteger) (ti / D_DAY); //#2
} //#3
-(void)load {
NSDate *birthdate = [prefs objectForKey:@"Birthdate"];
rock_Age = daysAfterDate(birthdate);
}
错误:
1。)它告诉我初始化中不兼容的类型 2.)D_DAY Undecared
警告:
3。)控制到达非空函数的结束
如果我这样做完全错了,(因为在我的生活中我无法理解NSDate类:/)我很乐意采取替代方法来做到这一点:)
所有帮助表示赞赏, 谢谢 -Jackson Smith
答案 0 :(得分:1)
本地方法timeIntervalSinceData是否返回“NSTimeInterval”(typdef double)?我猜它没有,因此错误 - 但代码不在这里看。
我们需要查看更多代码来帮助您 - 但D_DAY未声明应该很容易解决。假设它在标题中的某个位置不是#define,则需要指定该函数中的内容或文件中的更高位置。我猜你只是错过了某个特定值的#define - 至少是通过语法。
警告是因为这个错误 - 解析器在你修复之前不知道如何很好地完成任务。
答案 1 :(得分:1)
加载方法正确,以下内容适用于-[daysAfterDate:]
。
#define D_DAY 86400
-(NSInteger)daysAfterDate:(NSDate *)aDate {
NSTimeInterval ti = [[NSDate date] timeIntervalSinceDate:aDate];
return (NSInteger) (ti / D_DAY);
}
1)是因为自我可能不是NSDate。使用[NSDate date]
获取当前时间/日期。
2)是因为你必须定义D_DAY
3)仅因2)而发生。
我希望这会有所帮助。
以下文章也可能提供信息:(Ars Technica)
答案 2 :(得分:0)
1)我认为它谈论的是“自我”;它是一个约会?