iOS
文章平均质量分 59
三棵千年松
越努力,越幸运!
展开
-
MVC、MVP、MVVM
iOS MVC 示意图MVC 的几个明显的特征和体现:1、View 上面显示什么东西,取决于 Model。Model和View永远不能相互通信,只能通过Controller传递。2、Model通过Notification和KVO机制与Controller间接通信。只要 Model 数据改了,View 的显示状态会跟着更改。3、Controller可以直接与View对话(通过outlet,直接操作Vi转载 2017-02-14 13:52:17 · 307 阅读 · 0 评论 -
设计模式
1、代理模式delegate的作用:当一个类的某些功能需要被别人来实现,但是既不明确是些什么功能,又不明确谁来实现这些功能的时候,委托模式就可以派上用场。说到底一切都是为了使类之间的耦合性更松散。好的代码应该对扩展开放,对修改关闭。自定义一个delegate:@protocol DelegateTestDelegate《Object》@optional则是可做或不做 @required 就是必须去原创 2017-05-15 09:08:04 · 253 阅读 · 0 评论 -
id和instancetype
http://blog.csdn.net/lonelyroamer/article/details/7711895原创 2017-05-25 16:10:57 · 307 阅读 · 0 评论 -
NSString 的时候用copy和strong的区别
用copy是为了防止mutable string被无意中修改, NSMutableString是NSString的子类, 因此NSString指针可以持有NSMutableString对象.假如有一个NSMutableString,现在用他给一个retain修饰 NSString赋值,那么只是将NSString指向了NSMutableString所指向的位置,并对NSMUtbaleString计数器原创 2017-05-16 13:38:49 · 548 阅读 · 0 评论 -
iOS 响应者链,事件的传递
对于UIView 的两个方法的讲解: - (UIView )hitTest:(CGPoint)point withEvent:(UIEvent )event - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event(UIView )hitTest:(CGPoint)point withEvent:(UIEvent )event{原创 2017-05-18 17:21:33 · 258 阅读 · 0 评论 -
UIScrollView实现图片轮播器及其无限循环效果
http://blog.csdn.net/xyt8023y/article/details/50116571http://blog.csdn.net/azhang_coder/article/details/53243536http://www.cnblogs.com/wendingding/p/3763527.htmlhttp://blog.csdn.net/qq_27633421/article原创 2017-05-22 14:56:07 · 428 阅读 · 0 评论 -
ios 编译期和运行期
http://blog.csdn.net/Hello_Hwc/article/details/53557308http://blog.sina.com.cn/s/blog_12f70aa790102vc2i.html原创 2017-05-22 15:04:56 · 1820 阅读 · 0 评论 -
NSTimer与NSRunLoop
为什么要在非主线程创建NSTimer将 timer 添加到主线程的Runloop里面本身会增加线程负荷 如果主线程因为某些原因阻塞卡顿了,timer 定时任务触发的时间精度肯定也会受到影响 有些定时任务不是UI相关的,本来就没必要在主线程执行,给主线程增加不必要的负担。当然也可以在定时任务执行时,手动将任务指派到非主线程上,但这也是有额外开销的。NSTimer的重要特性NSTimer上的定时任务原创 2017-05-22 10:44:52 · 397 阅读 · 0 评论 -
内联函数
UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) { UIEdgeInsets insets = {top, left, bottom, right}; return insets; }UIKIT_STATIC_INLINE UIO转载 2016-11-21 16:58:03 · 415 阅读 · 0 评论 -
runtime
说说什么是runtime:1>OC 是一个全动态语言,OC 的一切都是基于 Runtime 实现的 平时编写的OC代码, 在程序运行过程中, 其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者 比如:OC : [[Person alloc] init] runtime : objc_msgSend(objc_msgSend(“Person” , “alloc原创 2017-03-10 16:11:49 · 225 阅读 · 0 评论 -
Block
底层的东西: http://www.cocoachina.com/ios/20150106/10850.htmlhttp://www.cocoachina.com/ios/20150109/10891.html自己参考: http://blog.csdn.net/wenxiangjiang/article/details/51387629 https://my.oschina.net/leej转载 2017-03-21 11:39:54 · 202 阅读 · 0 评论 -
ios 属性
使用@dynamic关键字是告诉编译器由我们自己来实现访问方法。如果使用的是@synthesize,那么这个工作编译器就会帮你实现了。nonatomic:非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。设置成员变量的@property属性时,默认为atomic,提供多线程安全。 在多线程环境下,原子操作是必要的,否则有可能引起错转载 2017-04-16 16:10:18 · 240 阅读 · 0 评论 -
我所了解的第三方库
猿题库的YTKNetworkhttps://github.com/yuantiku/YTKNetwork/blob/master/Docs/README_cn.md原创 2017-02-15 10:40:27 · 347 阅读 · 0 评论 -
线程Thread
同步:一个人多个任务按顺序执行 异步:多个人同时执行多个任务 进程:系统中正在运行的应用程序;每个进程之间是独立的,每个进程都运行在其专用的且受保护的内存空间中, 线程:一个进程可以有多个线程组成,线程是进程的基本单元,一个进程的所有任务都在线程中执行(一个进程至少有一个线程)多线程: 1.单核CPU同一时间只能处理一个线程; 2.CPU快速的在多个线程之间切换,造成同时执行的假象,每个线原创 2017-02-20 23:11:51 · 294 阅读 · 0 评论 -
GCD
http://www.cocoachina.com/ios/20161031/17887.htmlhttp://ios.jobbole.com/82622/http://www.jianshu.com/p/bc45569adee2http://www.cnblogs.com/ioshe/p/5937933.htmlhttp://www.jianshu.com/p/ae786a4cf3b1http:/原创 2017-03-08 17:36:49 · 344 阅读 · 0 评论 -
NSOperation
一、NSOperation简介1.简单说明NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程NSOperation和NSOperationQueue实现多线程的具体步骤:(1)先将需要执行的操作封装到一个NSOperation对象中(2)然后将NSOperation对象添加到NSOperationQueue中(3)系统会⾃动将NSOper原创 2017-03-01 14:38:17 · 249 阅读 · 0 评论 -
iOS 学习资料整理
http://www.cocoachina.com/ios/20150111/10894.html转载 2017-03-20 14:55:31 · 196 阅读 · 0 评论 -
ios中的锁
1111原创 2017-03-21 14:36:37 · 262 阅读 · 0 评论 -
atomic 与 nonatomic
在多进程(线程)访问共享资源时,能够确保所有其他的进程(线程)都不在同一时间内访问相同的资源。原子操作(atomic operation)是不需要synchronized,这是Java多线程编程的老生常谈了。所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。原子性: 1. 原子性内部也有一把,自旋原创 2017-03-22 10:50:50 · 297 阅读 · 0 评论 -
ios 属性
使用@dynamic关键字是告诉编译器由我们自己来实现访问方法。如果使用的是@synthesize,那么这个工作编译器就会帮你实现了。nonatomic:非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。设置成员变量的@property属性时,默认为atomic,提供多线程安全。 在多线程环境下,原子操作是必要的,否则有可能引起错原创 2017-04-19 11:26:50 · 240 阅读 · 0 评论 -
背记知识点
OC中,与alloc语义相反的方法是dealloc还是release?与retain语义相反的方法是dealloc还是release?为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?以下是针对MRC(手动内存释放)模式: 与alloc语义相反的方法是dealloc,与retain语义相反的方法是release。 alloc是为对象在内存中开辟空间,而deallo原创 2017-07-12 17:31:42 · 488 阅读 · 0 评论