iOS学习首页投稿(暂停使用,暂停投稿)iOS 你不知道的新鲜事

iOS 2.2升级3.0 Swift 各种坑啊 Ambigu

2016-11-16  本文已影响1017人  梁同桌

我总结3.0与2.2区别

///根据 用户查询 他上传的歌曲
    class func QueryUserMusicNetGet(_ user: UserModel,net:@escaping (_ objects: [AnyObject]?, _ error: NSError?) -> ()){

        //创建用户
        let user = AVObject(className: "_User", objectId: (user.objectID))
        //创建查询
        let query = MusicNet.query()!
        query.whereKey(LYMusicKeyUserList, equalTo:user)
        
        MusicNet.baseNetGet(query) { (objects, error) in
            net(objects, error)
        }

    }
            _=navigationController?.popViewController(animated: true)
       ///异步执行
        DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async(execute: {
            ///回到主线程
            DispatchQueue.main.async(execute: { () -> Void in
         
            })
            
        })
//下面的不警告
        DispatchQueue.global().async {
            // code
            DispatchQueue.main.sync {
                // 主线程中
            }
        }
      CGRectGetMaxX(cove.frame)
      cove.frame.maxY
     //更好使了
 imageView.sd_setImage(with: URL(string: newValue.userModel.headImageUrl), placeholderImage: UIImage(named: "Icon")) { (image, err, type, url) in
            }

什么鬼一直报错 Ambiguous use of 'sd_setImage

    imageView.sd_setImage(with: URL(string: newValue.userModel.headImageUrl), placeholderImage: UIImage(named: "Icon"), options: SDWebImageOptions.retryFailed) { (image, error, type, url) in
                weakSelf.userHeadBtn.setImage(image, for: UIControlState())
            }

Swift,必须要带参数的方法

妈的 归档有严重bug

不知道什么情况

    ///归档
    func encodeWithCoder(aCoder: NSCoder) {
        aCoder.encodeObject(musicName, forKey: "musicName")
        aCoder.encodeDouble(progress, forKey: "progress")
    }
    ///解裆
    required init(coder aDecoder: NSCoder)
    {
        super.init()
        
         musicName=aDecoder.decodeObjectForKey("musicName") as? String
         progress=aDecoder.decodeDoubleForKey("progress")//这句话,就是崩溃。 取不出值纳闷了。
    }

  最后解决方法的思路,就是所有归档都存字符串,先Double先转成字符串,归档,
  解档:取出字符串来以后再转成Double,记得强制解包。

   ///归档
    func encode(with aCoder: NSCoder) {
        aCoder.encode(musicName, forKey: "musicName")
        aCoder.encode("\(progress!)", forKey: "progress")//这里记得加!要不然是可选的
    }
    ///解裆
    required init(coder aDecoder: NSCoder)
    {
        super.init()
        musicName=aDecoder.decodeObject(forKey: "musicName") as! String      
        progress=Double(aDecoder.decodeObject(forKey: "progress") as! String)
      
    }

修复所有我所遇到BUG,另外把警告全部给消除,用15小时左右了。

很爽

个人博客: http://www.liangtongzhuo.com

上一篇 下一篇

猜你喜欢

热点阅读