【问题标题】:cannot convert value of type 'Anyobject!' to expected argument type 'Int'无法转换“Anyobject!”类型的值到预期的参数类型'Int'
【发布时间】:2016-06-11 13:01:21
【问题描述】:

我正在尝试将 Int 与 JSON 对象进行比较,但遇到转换错误。 user_id 是一个 Int,我也尝试过 Int(sharedID),但效果不佳。那么如何将 sharedID 与 user_id 进行比较 谢谢。

 let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data:NSData?, response: NSURLResponse?, error:NSError?) -> Void in

        dispatch_async(dispatch_get_main_queue()) {

            if error != nil
            {
                return
            }

            do {
                let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as? NSDictionary

                self.homeShareResults.removeAll(keepCapacity: false)

                self.shareTableView.reloadData()

                if let parseJSON = json {

                    if let friends  = parseJSON["checkSharedImage"] as? [AnyObject]
                    {
                        for friendObj in friends
                        {

                            let sharedID = (friendObj["id"])

                            if sharedID == user_id {...}

【问题讨论】:

  • 您是否仔细查看过是否在下标结果中混入了可选项? Xcode 可以告诉您推断的类型,而您并没有进行隐式展开,我可以看到。

标签: ios swift


【解决方案1】:

尝试对任何对象进行类型转换。

if let sharedID = friendObj["id"] as? Int{
        if sharedID == user_id {...}
}

或者干脆强制转换为!诠释

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2017-01-06
    相关资源
    最近更新 更多