swift 中使用weak self】的更多相关文章

Swift 是自动管理内存的,这也就是说,我们不再需要操心内存的申请和分配. 当我们通过初始化创建一个对象时,Swift 会替我们管理和分配内存.而释放的原则遵循了自动引用计数 (ARC) 的规则:当一个对象没有引用的时候,其内存将会被自动回收. 这套机制从很大程度上简化了我们的编码,我们只需要保证在合适的时候将引用置空 (比如超过作用域,或者手动设为 nil 等),就可以确保内存使用不出现问题. 但是,所有的自动引用计数机制都有一个从理论上无法绕过的限制,那就是循环引用 (retain cyc…
亲爱的博客园的关注着博主文章的朋友们告诉你们一个很不幸的消息哦, 这篇文章将会是博主在博客园发表的最后一篇文章咯, 因为之后的文章博主只会发布到这里哦 http://daiweilai.github.io/ 新博客排版布局更好,阅读体验更佳,欢迎吐槽.留言.订阅哟 马上又要过年了,诶,再也不能像当初那样无耻地逗利是了(我们广东的方言讨红包的意思) 图1 图2 看来今年没利了 谁让哥已经工作了呢. 公司今年的开发任务算是完结了,苹果又极不负(hǎo)责(yàng)任(de)地放圣诞不审核了,所以这…
request.responseString(encoding: NSUTF8StringEncoding) {[weak self] (res) -> Void in if let strongSelf = self { //do something... } } weak var weakSelf = self request.responseString(encoding: NSUTF8StringEncoding) {(res) -> Void in if let strongSelf…
干货之前:补充一下可选链(optional chain) class A { var p: B? } class B { var p: C? } class C { func cm() -> String { print("cm") return "abc" } } let insa = A() let insb = B() let insc = C() insa.p = insb //insa.p = nil insb.p = insc let r = in…
什么时候用通知,什么时候用代理,什么时候用block 通知 : 两者关系层次太深,八竿子打不着的那种最适合用通知.因为层级结构深了,用代理要一层一层往下传递,代码结构就复杂了 代理 : 父子关系,监听的方法较多的时候使用 block : 父子关系,监听的方法较少的时候使用 Swift中的代理 swift中代理的实现 定义swift中代理的协议 // swift 中的代理必须继承自NSObjectProtocol protocol VisitorViewDelegate : NSObjectPro…
1. 应该充分利用swfit的新特性 比如如果按照oc里的习惯,调用一个delegate中都optional函数应该这样写 if delegate != nil && delegate!.respondsToSelector("downloadProgress:progress:"){ delegate!.downloadProgress!(self, progress: totalProgress) } 先检查是不是nil,再检查是否实现了方法,而swift应该这样写…
今天写了delegate,遇到以下问题: 这里protocol的写法有问题,如果delegate指向一个实现了某个协议对象的引用,在oc里是这样写delegate的类型 id<protocol>,而在swift中,没有这种写法,应该像上面那样直接写出协议名,因此,协议声明应该这样写: protocol MyPickerViewDelegate: NSObjectProtocol { func pickerConfirm(content:String) } 这也是因为,除了class 外,str…
Swift中页面跳转与传值: 1.简单方式 首先,Swift的跳转可分为利用xib文件跳转与storyboard跳转两种方法,我这里选择使用storyboard的界面跳转方法. 1.通过在storyboard中拉button控件建立segue跳转. 2.通过presentViewController方法进行界面跳转. 这里需要注意presentViewController方法适用于xib与storyboard两种方法,但是当使用storyboard直接调用该方法时,ios模拟器会转入一个黑屏界面…
UISegmentedControl控件是分段显示控件,用户可以选择它上展示的任一段部分,每一个部分都像是一个按钮,如果被按下也会像UIButton一样执行相应的方法.在这篇文章中我们将创建一个UISegmentedControl控件并让它显示三个部分,每一个部分都会显示不同的文本内容. 需要的条件:Xcode6.iOS8以上系统(含iOS8) 具体步骤: 1.打开Xcode并创建一个新的Single View Application,填写工程名称,比如SegmentSwift,之后填写相应的O…
本文章将从两个方向分别介绍 OC 与 swift 混编 1. 第一个方向从 swift工程 中引入 oc类 1. 1 如何在swift的类中使用oc类    1.2  如何在swift中实现oc的代理方法    1.3   如何在swift中实现oc的Block回调 2 二个方向从OC工程中引入swift类 2.1  如何在OC类中使用swift类    2.2   如何在OC中实现swift的代理方法    2.3   如何在OC中实现swift中类似Block回调 下面是具体的实现过程: 1…