NSDateFormatter 不兼容类型错误

Posted

技术标签:

【中文标题】NSDateFormatter 不兼容类型错误【英文标题】:NSDateFormatter Incompatible Type Error 【发布时间】:2011-07-18 12:28:15 【问题描述】:

我在 Xcode 中收到以下错误:

警告:从不同的 Objective-C 类型传递“setUpdate:”的参数 1 时,Objective-C 类型“struct NSDate *”不兼容,预期为“struct NSString *”

当我尝试将格式化的字符串保存到 myObj.update 时发生错误

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
//myObj is an object with instance variable 'update' as a NSString string
myObj.update = [formatter dateFromString:@"2011-03-17T18:15:05Z"];
[formatter release];

我知道我做错了一些轻微但无法确定的错误。谢谢您的帮助! :)

【问题讨论】:

【参考方案1】:

dateFromString: 返回NSDate 的实例,而不是字符串。您需要将update 属性设为NSDate。编译器基本上是在告诉您该方法正在返回一个日期,但您正试图将其分配给一个字符串属性,这并不健康!

【讨论】:

哈哈,讽刺的是,我自己看到了错误,并在 Xcode 中修复了 NSDate...回到 SO 并查看您的回复。谢谢杰森 :) 周末愉快。

以上是关于NSDateFormatter 不兼容类型错误的主要内容,如果未能解决你的问题,请参考以下文章

如何修复不兼容的块指针类型发送错误?

类型的参数与类型错误的参数不兼容[重复]

Hashmap 错误:不兼容的类型

FusedLocationApi.requestLocationUpdates 给出不兼容的类型错误

联合分配的不兼容类型错误

为啥 heroku 会给我这个“不兼容的类型”错误?