iOS开发-委托实战】的更多相关文章

昨天晚上头疼,写了一部分草草的收笔了,早上起来补发一篇文章,昨天关于委托的基本使用和概念都稍微讲了一下,最开始学习委托的时候苹果官网和中文的博客文章看了不少,相似指数比较高.委托在命名要准确,最好是一看名字就知道用法,看名字就知道是干什么用的,比如说UINavigationControllerDelegate,UITableViewDelegate,这样命名不管是自己开始还是别人维护都是一个非常省心的事情,一举两得. 页面布局 先来看下效果图,这样大概知道应该实现的内容,效果如下: 这种实现,在…
委托其实并不是OC中才有,C#中也有,不过彼此的理解方式是不一样的,OC中委托是协议的一种,需要使用@protocol声明,委托一般在iOS开发中页面中传值用的比较多.委托是Cocoa中最简单.最灵活的模式之一,委托其实字面上的意思就是将需要的事情委托给别人做,业务场景可以参考主视图和子视图之间的页面关系,或者是视图层和数据层之间的交互. 简单的委托 委托通过@protocol声明,可以定义方法,引用委托的对象,需要实现其方法,方法默认都是@required的,同时可以设置为可选的@option…
CocoaPods 是开发 OS X 和 iOS 应用程序的第三方库的依赖管理工具,如果是正常的开发不需要使用的第三方的代码,CocoaPods是不需要的,但是从实际情况上,为了提高开发效率,CocoaPods算是一个必备的开发工具之一.一般如果是简单的引用,CocoaPods的优势不是很明显,当项目用到的第三方应用程序越来越多的时候,CocoaPods可以根据定义的依赖关系,统一管理,第三开源库如果有更新,直接更新Pods文件即可. CocoaPods基础 CocoaPods是用 Ruby 写…
近期開始开发一个新的iOS应用,自己决定使用Swift.进行了几天之后,发现了一个非常严峻的问题.那就是无论是书籍,还是网络资源,关于Swift的实在是太少了,随便一搜全都是OC实现某某某功能.就算是找到Swift的资源,一看,大概是半年前的代码.或是一年前的代码,一执行.全都报错. 这是因为毕竟Swift还是在不断发展完好其中,随着Swift2.0的开源以来,包含公布Swift这一年多以来,Swift的修改还是非常大的,非常多的接口或是语法前后有较大差异.有些功能仅仅能自己硬生生看官方文档或挤…
手机作为一个小屏设备,须要显示的信息往往无法在一个屏幕上显示,此时就须要使用到滚动栏,当然除了像TableView这样能够自带滚动功能的. 假设一个界面上View较多,那就必须要使用到ScrollView了.如今我们将会使用Swift在iOS上实现滚动效果.详细实现例如以下: (1)创建一个新的iOS项目.语言选择Swift,并在Main.storyboard中拖入一个ScrollView控件.然后在ScrollView中拖入几张照片,等下能够使用滚动功能查看照片.界面例如以下: waterma…
委托模式从GoF装饰模式.适配器模式和模板方法等演变过来,几乎每一个应用都会或多或少的用到委托模式. 在古希腊有一个哲学家,他毕生只做三件事情:“睡觉”.“吃饭”.和“工作”.为了更好的生活,提高工作效率,他会找一个徒弟,把这些事情委托给他弟弟做.然而要成为他得徒弟,需要实现一个协议,协议要求能够实现“睡觉”.“吃饭”.“工作”的问题.三者的关系如下. 从图中可以看到,通用类(Philosopher)保持指向委托对象(ViewController)的“弱引用” (id<PhilosopherDe…
UIScreenEdgePanGestureRecognizer名字很长,而且关于其文档也是少的的可怜,苹果官方给的唯一的一个属性是edges,文档中的解释是这样的: A UIScreenEdgePanGestureRecognizer looks for panning (dragging) gestures that start near an edge of the screen. The system uses screen edge gestures in some cases to…
实现思路: 1.每一条新闻就是一个cell,在cell上添加点赞按钮. 2.让cell的控制器成为自定义cell的代理,将点击了哪一个cell放在代理方法中传出去. 3.并将这条新闻的ID和当前用户的ID上传服务器. 4.此时要考虑每个用户只能点击一次,且当用户再次点击的时候,取消点赞(定义一个BOOL变量存储用户的点击次数).则将上传的数据取出来,做判断,如果取出来有数据,说明用户点击过,没有数据那就存储到网络.再次点击,将请求下来的数据,即BOOL变量存储为NO,即取消点赞. 5.到这里就要…
Block使用注意点浅析 1.在使用block前需要对block指针做判空处理. 不判空直接使用,一旦指针为空直接产生崩溃. if (!self.isOnlyNet) { if (succBlock == NULL) { //后面使用block之前要先做判空处理 return; } id data = [NSKeyedUnarchiver unarchiveObjectWithFile:[self favoriteFile]]; if ([data isKindOfClass:[NSMutabl…
带你看看Objective-C的精髓 1:接口与实现 @interface...@end @implementation...@end @class 接口(头文件) 实现文件 向前引用 注:类别通过增加新的类和实例方法来扩展现有类的行为.作为惯例,类别被定义在它们自己的.{h,m}文件里, 2:实例变量可视性 @public @package @protected @private @public:实例变量可使用符号 person->age = 32" 被直接读取. @package:实例…