前言:我主要是一个obj-c && swift n00b.在过去的一年中,我通过使用RubyMotion对iOS和Cocoa框架有些熟悉.所以,如果有一些愚蠢或明显的东西我会失踪,这就是为什么......
我在新的iOS项目(使用CoreData)中使用Mantle的JSONTransformer时遇到了麻烦.我一直在尝试在Swift中实现以下[obj-c代码]:
+ (NSValueTransformer *)updatedAtJSONTransformer {
return [MTLValueTransformer reversibleTransformerWithForwardBlock:^(NSString *str) {
return [self.dateFormatter dateFromString:str];
} reverseBlock:^(NSDate *date) {
return [self.dateFormatter stringFromDate:date];
}];
}
Run Code Online (Sandbox Code Playgroud)
我已经dateFormatter定义了以下函数:
func dateFormatter() -> NSDateFormatter {
let _dateFormatter = NSDateFormatter()
_dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
_dateFormatter.dateFormat = "yyyy-MM-dd'T' HH:mm:ss'Z'"
return _dateFormatter
}
Run Code Online (Sandbox Code Playgroud)
使用下面的实现时,我始终收到类似于以下的错误:
'AnyObject!' is not a subtype of 'NSString'
要么
Cannot convert the expression's type 'MTLValueTransformer!' to type 'NSString?'
我尝试过以下方法:
func createdAtJSONTransformer() -> NSValueTransformer {
let _forwardBlock: (String) -> NSDate = …Run Code Online (Sandbox Code Playgroud)