我正在将我的项目从Swift 1.2升级到Swift 2。
我利用这个机会来升级我使用的很多lib,尤其是Alamofire。
但是现在我的许多要求都出现了这个错误:
使用未解析的标识符'notifTypeJSON'
以下是其中一个函数的代码:
func getNotifications(failure failure: (NSError) -> (), success: ([Notification]) -> ()) {
Alamofire.request(Router.Notifications)
.validate()
.responseJSON { response in
if let error = response.result.error {
failure(error)
} else {
var json = JSON(response.data!)
let status = json["error"].intValue
if status != 0 {
failure(self.createError(status))
} else {
var notifications = [Notification]()
let notificationsList = json["notification"]
for (index: String, notifTypeJSON: JSON) in notificationsList {
if let notifJSON = notifTypeJSON[NotificationTypes.Generic.rawValue].dictionaryObject {
notifications.append(GenericNotification(json: notifJSON))
}
else if let notifJSON = notifTypeJSON[NotificationTypes.Follow.rawValue].dictionaryObject {
notifications.append(FollowNotification(json: notifJSON))
}
else if let notifJSON = notifTypeJSON[NotificationTypes.Comment.rawValue].dictionaryObject {
notifications.append(CommentNotification(json: notifJSON))
}
else if let notifJSON = notifTypeJSON[NotificationTypes.Like.rawValue].dictionaryObject {
notifications.append(LikeNotification(json: notifJSON))
}
}
DDLogInfo("SeetyAPI getNotifications() success")
success(notifications)
}
}
}
}
答案 0 :(得分:1)
在Swift 2中,我们使用元组循环字典的方式已经改变:类型必须在一个单独的元组中。
之前的例子:
for (key:String, value:Int) in xxx {
示例之后:
for (key, value):(String, Int) in xxx {
所以对你来说,你需要替换它:
for (index: String, notifTypeJSON: JSON) in notificationsList {
有了这个:
for (index, notifTypeJSON):(String, JSON) in notificationsList {