2013-03-22 51 views
0

我设立一些常量,其中之一是一个NSDate但接收到该wanring消息:不相容指针类型初始化“的NSDate

不相容指针类型与类型的NSString

的代码简单说明的表达式初始化NSDate *const __strong(小鬼文件):

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]; 

有人能解释的警告实际上意味着,什么应该在这里改变:

这是后来在下面的转换使用?我在上面最后一行得到同样的错误?

回答

1
NSDate *const kPAPUserBirthdayKey = @"fbBirthday"; 

你分配一个字符串到的NSDate。

变化NSDate变为NSString

用途:

NSString const *kPAPUserBirthdayKey = @"fbBirthday"; 

还要检查你需要什么?

A constant pointer or pointer to a constant

+0

@CarlVeazey:对不起再次错字错过,解释不错,但复制并忘记将nsdate更改为nsstring :(而且你很频繁地downvote。没有任何怜悯之类的东西 – 2013-03-22 15:57:24

+0

好吧,我想这更多地涉及这个如何正在被使用/实现。fbBirthday是一个正确的字符串,但它只是日期将被输入到的标题/列。因此,输入的实际数据将是Date,如下所示 - [[PFUser currentUser] setObject:userDOB forKey :kPAPUserBirthdayKey]; – StuartM 2013-03-22 16:01:51

0
NSDate *const kPAPUserBirthdayKey        = @"fbBirthday"; 

这里fbBirthday是一个字符串没有日期。警告说。

0

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