objective-c
perry0528
这个作者很懒,什么都没留下…
展开
-
ios开发入门
开发一个应用程序看起来复杂,实际上我们可以分为以下几个方面来看:设计用户界面定义交互实现行为整合数据我们这里需要先提一种典型的软件设计典范,也就是我们常说的MVC模式。((业务模型)Model-(用户界面)View-(页面业务逻辑)Controller)目的:将M和V实现代码分离,从而使同一个程序可以用不同的表示形式。1. 设计用户界面视图层次:视图层次定义了视图相对于其他视...原创 2019-03-25 15:16:37 · 203 阅读 · 0 评论 -
iOS | Grand Central Dispatch (GCD)
进程和线程:进程是一个正在运行的应用程序,一个应用程序可以对应一个或多个进程。应用程序是一个没有生命的实体,只有运行之后,才能成为一个活动的实体,也就是进程。进程是操作系统分配资源的基本单元。进程在运行的过程中拥有独立的内存单元,一个进程崩溃后,不会对其他进程造成影响。线程是独立运行和独立调度的基本单位,线程才是程序真正的执行单元,负责代码的执行。一个进程可以有一个或多个线程,同一个进程的线...原创 2019-06-04 10:59:58 · 170 阅读 · 0 评论 -
iOS | Blocks
概要Blocks时c语言的扩充功能,就是带有自动变量(局部变量)的匿名函数模式语法:^ 返回值类型 参数列表 表达式例如:^int (int count) {return count + 1;}可省略返回值类型,Block语法将按照return语句的类型返回int型返回值^(int count) {return count + 1;}如果不使用参数,参数列表也可省略^{print...原创 2019-06-02 15:15:01 · 213 阅读 · 0 评论 -
iOS多线程和网络
提供的功能通过URL将数据下载到内存通过URL将数据下载到文件系统将数据上传到指定的URL在后台完成上述操作(支持后台网络操作,除非用户强行关闭应用程序)NSURLConnection和NSURLSession的关系示意图NSURLSession中的请求都看做一个请求任务(task)。NSURLSession的Task继承关系如下:NSURLSessionTask 是一个...原创 2019-06-02 00:59:25 · 214 阅读 · 0 评论 -
iOS | 内存管理(MRC和ARC的区别以及实现)
自动引用计数(ARC)是指内存管理中对引用采取自动计数的技术。使用ARC,就无需再次键入retain或者release代码,这降低了程序崩溃,内存泄漏等风险的同时,很大程度上减少了开发程序的工作量。ARC技术使得编译器清楚目标对象,并能立刻释放那些不再被使用的对象。如此一来,应用程序将具有可预测性,且能流畅运行,速度也将大幅提升。MRC人工引用计数(Manual Reference Coun...原创 2019-05-31 13:25:15 · 1005 阅读 · 0 评论 -
iOS的MVC设计模式和MVVM的异同点以及iOS中如何实现数据绑定
设计模式:MVC在模型对象(model)中封装数据和基本行为模型对象维护应用程序的数据,并定义操作数据的特定逻辑。只要是加载的是包含有应用程序永久信息的数据,就将其放到model中。理想状况下,模型对象同用于对其进行显示和编辑的用户界面之间不应该有任何直接的关联。使用视图对象(view)视图对象可以响应用户操作,并懂得如何将自己展现在屏幕上。视图对象通常从应用程序的模型对象获取...原创 2019-05-24 00:27:53 · 1400 阅读 · 1 评论 -
iOS | 深拷贝和浅拷贝 + assign
浅拷贝:不拷贝对象本身,仅仅是拷贝指向对象的指针(copy)深拷贝:直接拷贝整个对象的内存到另一块内存上去(mutableCopy)以下特殊情况:不可变情况下被拷贝指针重新赋值。 NSString *str1 = @"str1"; NSString *str2 = [str1 copy]; str1 = @"asdf"; NSLog...原创 2019-05-30 18:04:46 · 264 阅读 · 0 评论 -
IOS应用生命周期
IOS应用生命周期分为以下5种状态:Not running(非运行状态)应用程序没有运行或被系统终止Inactive(前台非活动状态)正在进入前台状态但是不能接受事件处理Active(前台活动状态)进入前台,能接受事件处理Background(后台状态)如果有可执行的代码则执行代码,没有或执行完毕则马上进入挂起状态。Suspended(挂起状态)冷...原创 2019-04-26 15:21:36 · 252 阅读 · 0 评论 -
KVO的实现原理
KVO是通过isa-swizzing的方法来实现的。就是比如B作为观察者观察A的属性name时,在运行时会动态生成一个A的子类notify_A类,然后将A类的实例对象的isa指针指向notify_A这个子类,然后在子类中重写的方法有三个:name的set方法- (void) setName:(NSString*) name{ willChangeValueForKey; _name ...原创 2019-06-12 01:20:50 · 1722 阅读 · 0 评论