iOS开发——完整项目实战Swift篇&百思不得姐Swift版总结(三)
来源:互联网 发布:淘宝卖家订单险多少钱 编辑:程序博客网 时间:2024/05/16 19:15
一:闭包(闭包)
比如我们在OC需要在View定定义一个block,然后在对应的控制器里面使用block保存对应的砝码快,然后返回这里执行,那在OC是类似的,只是名称不同语法有那么一点区别而已
首先在View中声明一个闭包别名,根据我们需要传递的参数
/// 闭包的声明typealias iCocosClosure = (string: String) ->Void
然后声明一个闭包属性,并且实现初始化方法
var iCocosBlock: iCocosClosure? //将函数指针赋值给myClosure闭包,该闭包中涵盖了someFunctionThatTakesAClosure函数中的局部变量等的引用 func initWithClosure(closure: iCocosClosure?) { iCocosBlock = closure }
最后在摇执行的方法里面判断就并且执行就可以
//判空 if (iCocosBlock != nil){ //闭包隐式调用someFunctionThatTakesAClosure函数:回调。 iCocosBlock!(string: "name") }
这个时候控制器里面就很简单了,只需要传入对应的代码保存到闭包里面
textField.initWithClosure { (string) -> Void in if (self.textField?.text.isEmpty != nil) { return; } self.tagButtons.removeLast() }
二:代理
首先定义一个代理协议,和对应的代理方法
//协议,定义代理要实现的方法protocol iCocosViewControlDelegate{ func changeLabel(newString:String)}
定义一个Delegate对象
var delegate:iCocosViewControlDelegate?
判断是否遵守这个代理协议,遵守则执行代理方法
if (delegate) { delegate?.changeLabel("iCocos")}
在接受代理的控制器或者View中实现下面的代理
设置代理vc.delegate = self
遵守协议iCocosViewControlDelegate
在对应的控制器中遵守协议iCocosViewControlDelegate,实现代理方法
实现代理方法 func changeLabel(newString:String) { 实现大礼方法的代理这里主意参数的传递}
三:通知,跟OC几乎一样
添加一个通知,并且实现同步方法
- NSNotificationCenter.defaultCenter().addObserver(self, selector: "Notification", name: "iCocos", object: self)
func Notification() { print("") }
在对应的控制器发布通知
- NSNotificationCenter.defaultCenter().postNotificationName("iCocos", object: self, userInfo: nil)
四:segue实现控制器跳转
1 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {2 3 if segue.identifier == "showDetail" { 4 destinationController.navigationItem.title = "摇到的菜"5 destinationController.tempCaipin = self.showArray //传值 6 } 7 }
五:NSUserDefaults(不过这个用的比较多的是数据持久化,这里严格来说不能算传值)
1 func cacheSetString(key: String,value: String){ 2 var userInfo = NSUserDefaults() 3 userInfo.setValue(value, forKey: key) 4 } 5 6 func cacheGetString(key: String) -> String{ 7 var userInfo = NSUserDefaults() 8 var tmpSign = userInfo.stringForKey(key) 9 return tmpSign!10 }
经典错误
一:可选类型错误
- tipBtn.setTitle("添加表情:\(self.textField?.text)", forState: UIControlState.Normal)
解决办法
- tipBtn.setTitle("添加表情:\(self.textField!.text)", forState: UIControlState.Normal)
二:可选链
提示插入
插入子后�提示删除
这个时候只需使用显示就可以
版权声明:欢迎转载,请贴上源地址: http://www.cnblogs.com/iCocos/(iOS梦工厂)
更多精彩请关注github:https://github.com/al1020119?tab=repositories
本博文由博主(iCocos)独立编写或者借鉴别人的好文章进行修改而成,如果不对的地方望指正,谢谢! 笔者所有相关博客已转至git博文:http://al1020119.github.io/此博文不会再更新,也很少会回复,如有疑问请联系我!Q Q:2211523682/790806573微信:18370997821/13148454507微博WB:http://weibo.com/u/3288975567?is_hot=1git博文:http://al1020119.github.io/github:https://github.com/al1020119
分类: iOS开发学习路线(完整笔记),iOS开发之项目实战篇
阅读全文
0 0
- iOS开发——完整项目实战Swift篇&百思不得姐Swift版总结(三)
- iOS开发——完整项目实战Swift篇&百思不得姐Swift版总结(一)
- iOS开发——完整项目实战Swift篇&百思不得姐Swift版总结(二)
- iOS项目开发实战(Swift)—项目目录和结构
- iOS项目开发实战(Swift)—简单浏览器
- iOS项目开发实战(Swift)—查询天气小应用
- iOS项目开发实战(Swift)—Button和Alert学习
- iOS项目开发实战(Swift)—View之间传递数据
- iOS项目开发实战(Swift)—初探TableView
- iOS项目开发实战(Swift)—代理的使用
- iOS项目开发实战(Swift)—View之间传递数据
- iOS项目开发实战——开发基于Handoff的App(Swift)
- iOS开发Swift篇—(三)字符串和数据类型
- Swift开发iOS项目实战视频教程(三)---掷骰子(1)
- 第一记— Swift版百思不得姐
- iOS开发项目实战——Swift实现图片轮播与浏览
- iOS开发项目实战——Swift实现ScrollView滚动条功能
- iOS项目开发实战——Swift实现多个TableView的侧滑与切换
- Java 爬虫模拟知乎登陆
- 单变量线性同余方程的C++实现
- Opencv的格式化输出风格
- gerrit操作小记
- js 好用的工具库
- iOS开发——完整项目实战Swift篇&百思不得姐Swift版总结(三)
- 日常运维经验分享
- ThinkPHP常用正则表达式
- JavaWeb 之Servlet
- Linux文件权限
- 文章标题
- bzoj2428 [HAOI2006]均分数据 模拟退火
- linux下shuf命令随即排序shuf -n1 a.txt
- jquery下拉菜单