小编teh*_*sor的帖子

如何在Swift中使用Github Mantle的MTLValueTransformer?

前言:我主要是一个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)

objective-c ios github-mantle swift

2
推荐指数
1
解决办法
2722
查看次数

标签 统计

github-mantle ×1

ios ×1

objective-c ×1

swift ×1