我正在使用带有Runes和Box框架的Argo,我遵循了Carthage添加框架的方式。 这是我的城市模型类
import Argo
import Runes
struct Cities {
let cityName: String
let cityState: String
}
extension Cities: Decodable {
static func create(cityName: String)(cityState: String!) -> Cities {
return Cities(cityName: cityName, cityState: cityState)
}
static func decode(j: JSON) -> Decoded<Cities>
{
return Cities.create <*> j <| "cityName" <*> j <| "cityState"
}
}
我收到以下错误:无法找到&#39;&lt; *&gt;&#39;接受提供的参数 返回Cities.create&lt; *&gt; j&lt; | &#34;的cityName&#34; &LT * GT; j&lt; | &#34; cityState&#34;
我该如何解决这个问题?
示例json:
{"cityName":"Panaji","cityState":"Goa"}
Xcode: v6.4
答案 0 :(得分:0)
在Cities.create之后你必须把&lt; ^&gt;操作
以下是您修改后的代码:
import Argo
import Runes
struct Cities {
let cityName: String
let cityState: String
}
extension Cities: Decodable {
static func create(cityName: String)(cityState: String!) -> Cities {
return Cities(cityName: cityName, cityState: cityState)
}
static func decode(j: JSON) -> Decoded<Cities>
{
return Cities.create <^> j <| "cityName" // modified line
<*> j <| "cityState"
}
}
在Argo的最后一个版本中你可以这样做:
import Argo
import Curry
struct Cities {
let cityName: String
let cityState: String
}
extension Cities: Decodable {
static func decode(j: JSON) -> Decoded<Cities> {
return curry(Cities.init)
<^> j <| "cityName"
<*> j <| "cityState"
}
}