我正在浏览 Jastor的文档:
returning arrays 有一个 Objective-C 实现:
+ (Class)categories_class {
return [ProductCategory class];
}
这是我尝试将它转换为 Swift 的尝试,但是它最终没有返回任何内容,所以我认为它没有正确实现:
#<_TtC4TestApp4Room: id = (null) {
resultCount = 50; // 50 is returning fine
results = ( // results is not
);
}>
NSDictionary 响应:
{
"resultCount" : 50,
"results" : [
{
"collectionExplicitness" : "notExplicit",
"discCount" : 1,
"artworkUrl60" : "http:\/\/a4.mzstatic.com\/us\/r30\/Features\/2a\/b7\/da\/dj.kkirmfzh.60x60-50.jpg",
"collectionCensoredName" : "Changes in Latitudes, Changes in Attitudes (Ultmate Master Disk Gold CD Reissue)"
}
]
}
Music.swift (不太确定如何实现 results_class()
方法)
class Music : Jastor {
var resultCount: NSNumber = 0
var results: NSArray = []
class func results_class() -> AnyClass {
return Author.self
}
}
Author.swift
class Author {
var collectionExplicitness: NSString = ""
var discCount: NSNumber = 0
var artworkUrl60: NSString = ""
var collectionCensoredName: NSString = ""
}
最佳答案
我正在使用以下语法(根据您的示例改编):
static let results_class = Author.self
一切都适合我。
其他可能会或可能不会影响的差异:
- 我正在使用
Int
而不是NSNumber
和String
而不是NSString
(数组除外)。 - 我使用隐式包装的可选值而不是为每个字段分配默认值
关于objective-c - 使用 Jastor 将 JSON/NSDictionary 转换为 Typed Swift 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24275264/