Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在swift中使用访问控制?_Ios_Swift_Private_Getter - Fatal编程技术网

Ios 在swift中使用访问控制?

Ios 在swift中使用访问控制?,ios,swift,private,getter,Ios,Swift,Private,Getter,我想在swift的所有类级别上获取设备ID,每次异步调用时都会将其作为参数包含。而且我真的不太清楚苹果的访问控制。所以,我真的需要帮助 那个么,如何在开始点保存设备id,并使异步请求的所有类都可以访问它们呢 在应用程序中,didFinishLaunchingWithOptions,我将添加以下代码 假设keychain是我存储价值的库 if keychain.get("deviceID") == nil{ keychain.set(UIDevice.currentDevice().id

我想在swift的所有类级别上获取设备ID,每次异步调用时都会将其作为参数包含。而且我真的不太清楚苹果的访问控制。所以,我真的需要帮助

那个么,如何在开始点保存设备id,并使异步请求的所有类都可以访问它们呢

在应用程序中,didFinishLaunchingWithOptions,我将添加以下代码 假设keychain是我存储价值的库

if keychain.get("deviceID") == nil{
     keychain.set(UIDevice.currentDevice().identifierForVendor!.UUIDString,forKey : ”deviceID”)
     //some private var deviceID = keychain.get(“deviceID”)
}
else{
    some private var deviceID = keychain.get(“deviceID”)
}
我想访问UIViewController类中任意位置的私有变量

class ViewController : UIViewController {
     let deviceID = //some private var with getter?
}
我能用swift吗?用苹果的访问控制


这个问题与这个问题有关:

将您的设备ID定义为静态,您将能够在任何地方访问它

在您的代码启动钥匙链之后,在某个类中将其设置为静态

class DeviceArg {
 static var deviceId = keychain.get(“deviceID”)
}


// some other place in the code
let check = DeviceArg.deviceId //get deviceId
检查我的代码:-

var mytoken1: String = deviceToken.description.stringByReplacingOccurrencesOfString("<", withString: "")
var mytoken2: String = mytoken1.stringByReplacingOccurrencesOfString(">", withString: "")
mytoken2 = mytoken2.stringByReplacingOccurrencesOfString(" ", withString: "")
NSUserDefaults.standardUserDefaults().setValue(mytoken2, forKey: "DEVICE_TOKEN")
NSUserDefaults.standardUserDefaults().synchronize()
var mytoken1:String=deviceToken.description.stringByReplacingOccurrencesOfString(“,with String:”)
mytoken2=mytoken2.stringByReplacingOccurrencesOfString(“,带字符串:“”)
NSUserDefaults.standardUserDefaults().setValue(mytoken2,forKey:“设备\令牌”)
NSUserDefaults.standardUserDefaults().synchronize()

设置它的值怎么样?DeviceArg.deviceId=“一些新值”让检查=DeviceArg.deviceId返回“”,有帮助吗?