swift中的几种传值

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差不多,注意写法就好了





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值