作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我试图在 Swift 中为我的一个模型创建某种类型的 initWithDictionary
初始值设定项。这就是我想要做的:
class CityModel: NSObject {
var country: String
var mapLat: String
var mapLng: String
var mapZoom: Int
var name: String
var nameShort: String
var timezone: String
var token: String
init(country: String, mapLat: String, mapLng: String, mapZoom: Int, name: String, nameShort: String, timezone: String, token: String) {
self.country = country
self.mapLat = mapLat
self.mapLng = mapLng
self.mapZoom = mapZoom
self.name = name
self.nameShort = nameShort
self.timezone = timezone
self.token = token
}
convenience init(dict: Dictionary<String, AnyObject>) {
self.init(
country: (dict["country"] as String),
mapLat: (dict["mapLat"] as String), // error
mapLng: (dict["mapLng"] as String),
mapZoom: (dict["mapZoom"] as Int),
name: (dict["name"] as String),
nameShort: (dict["nameShort"] as String),
timezone: (dict["timezone"] as String),
token: (dict["token"] as String)
)
}
}
我收到以下错误:
CityModel.swift:34:18: Extra argument 'mapLat' in call
恐怕我不知道自己做错了什么。有什么想法吗?
最佳答案
将您的 dict
声明更改为:
dict: Dictionary<String, Any>
这是因为您混合使用了多种类型,包括非类类型。
Swift 文档中的更多信息在这里: https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html#//apple_ref/doc/uid/TP40014097-CH22-XID_505
“额外参数”错误消息是一个转移注意力的问题。我发现它通常会提示参数的类型不匹配。
关于ios - Swift 中的便利初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26151201/
我的图书馆的几个部分都带有“便利”功能。例如,容器类可能具有解析字符串信息的功能。这些功能不一定一直都需要(或想要),因此我想将它们放在单独的文件中,以便可以根据用户的需要将它们包括或省略。 应该如何
我已经尝试在 Stack Overflow 和其他网站上搜索使用 Sets 与 Lists 的优缺点和便利,但我真的找不到明确的答案何时使用这个或那个。 从 Hibernate 的文档中,他们声明非重
我是一名优秀的程序员,十分优秀!