小编San*_*ill的帖子

如何测试`NSObject`是否具有可以设置的任意名称的属性?

我想从字典中实现模型的通用填充.我使用以下测试测试模型是否具有属性,但条件总是失败:

if (self.responds(to:(NSSelectorFromString(keyName)))){
    self.setValue(keyValue, forKey: key )
}
Run Code Online (Sandbox Code Playgroud)

这是一个示例代码:

import UIKit

class myModel: NSObject {    
    var userName: String = ""
    var phoneNumber: String = ""

    init(dict: Dictionary<String, Any>) {
        super.init()

        for (key, value) in dict {
            let keyName = key     
            let keyValue: String = String(describing: value)

            print("key \(key) value \(value)")

            if (self.responds(to:(NSSelectorFromString(keyName)))){
                self.setValue(keyValue, forKey: key )
            }
        }          
    }        
}
Run Code Online (Sandbox Code Playgroud)

nsobject ios swift swift4

3
推荐指数
1
解决办法
232
查看次数

我怎样才能在swift 4中获得deviceToken?

我正在使用此代码获取设备令牌它在swift 3中工作但不在swift 4中工作请帮我解决它.


if #available(iOS 10.0, *) {
      let center = UNUserNotificationCenter.current()
      center.requestAuthorization(options:[.badge, .alert, .sound]) { (granted, error) in
          }
}
 func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

     let deviceTokenString = deviceToken.reduce("", {$0 + String(format: "%02X", $1)})
    print(deviceTokenString)
}

apple-push-notifications devicetoken ios swift

1
推荐指数
2
解决办法
2万
查看次数