1.userdefault
存储小数据,在其他界面中调用,比较方便
注意:这些数据是常量,不能直接去改,即使强转也会崩溃的
这样,若要该变,像数组、字典,重新 var 定义
例下为数组:
一个地方这样存储:
var arr = NSMutableArray(array: ["1","2","3"])
let user = NSUserDefaults.standardUserDefaults()
user.setObject(arr, forKey: "arr")
user.synchronize()
另一个地方这样改:var arr1 = NSUserDefaults.standardUserDefaults().objectForKey("arr") as NSArray(直接用NSMutableArray而没有arr2 下面操作不能够)
var arr2 = NSMutableArray(array: arr1)
NSLog("arr=\(arr1)")
NSLog("arr.count= \(arr1.count)")
if arr2.count>=1 {
arr2.removeObjectAtIndex(0)
}
NSLog("arr=\(arr2)")
2.代理
oc中可以用property 生成代理
而这里不行了要用setter方法
写协议的一方(//定义 可选的“optional func”必须加 @objc 和 oc 兼容 ):
var delegate:XXXProtocol? = nil
func setDelegate(evaluateHandler:EvaluateProtocol){
self.delegate = evaluateHandler
}
然后在需要的地方执行协议方法:self.delegate?.evaluateSuccees(bnStr, speed:titleStr!)
代理方:遵守协议()没有optional 的都要实现
注意:要设置代理,否则实现协议方法也是徒劳
var view1 = EvaluateViewController()
view1.setDelegate(self)
实现协议方法
func evaluateSuccees(service: String, speed: String){
}
3.观察者(一对多)
和oc差不多,注意写法就好了