1

我正在设置一些常量,一个是 NSDate 但收到这条警告消息:

NSDate *const __strong使用类型表达式初始化的不兼容指针类型NSString

代码简单说明(imp文件):

NSDate *const kPAPUserBirthdayKey = @"fbBirthday";

高级解释:我使用一个常量文件作为一个单例,为我写入的 API 保存常量变量。例如上面是一个日期字段,它将在连接到 Facebook 时保存 facebook 用户的生日。

然后在以下转换中使用它:

// Convert the DOB string into Date format
NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MM/dd/yyyy"];
NSDate* userDOB = [df dateFromString:user.birthday];
[[PFUser currentUser] setObject:userDOB forKey:kPAPUserBirthdayKey];

有人可以解释警告的实际含义以及此处应更改的内容吗?我在上面的最后一行得到同样的错误?

4

3 回答 3

1
NSDate *const kPAPUserBirthdayKey = @"fbBirthday";

您正在为 NSDate 分配一个字符串。

更改NSDateNSString

采用:

NSString const *kPAPUserBirthdayKey = @"fbBirthday";

还要检查你需要什么?

常量指针或指向常量的指针

于 2013-03-22T15:52:35.763 回答
0
NSDate *const kPAPUserBirthdayKey                               = @"fbBirthday";

fbBirthday是一个字符串而不是日期。警告是这样说的。

于 2013-03-22T15:53:51.057 回答
0

将常量的类型更改为 NSString。编译器告诉你你在不兼容的类型之间进行赋值,因为 NSString 不是 NSDate 的子类。

于 2013-03-22T15:58:47.503 回答