iOS 进阶 第六天(0402)】的更多相关文章

0402 通知和代理的区别 代理是一对一的,只能是调用实现了协议里的方法,对象作为实现了该方法才能执行方法 通知是多对多,它是通过通知中心分发 通知要及时移除,如果不及时移除可能会收到多次通知,就好像C#中的事件注册多次一样.也可能(通知中心不会保留被通知的对象)是被通知的对象已经销毁,但通知中心仍保留这个通知继续通知造成野指针错误,应用可能会崩溃. 同时的添加和移除很容易和KVO混在一起,只要注意addObserver和removeObserver的时候不选择forKeyPath就可以了. 下…
一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大头针类,我自定义的为MyAnnotation 大头针: 在iOS开发中经常会标记某个位置,需要使用地图标注,也就是大家俗称的“大头针”.只要一个NSObject类实现MKAnnotation协议就可以作为一个大头针,通常会重写协议中coordinate(标记位置).title(标题).subtitl…
iOS进阶指南试读之UI篇 UI篇 UI是一个iOS开发工程师的基本功.怎么说?UI本质上就是你调用苹果提供给你的API来完成设计师的设计.所以,想提升UI的功力也很简单,没事就看看UIKit里的各个类的头文件.如果能做到烂熟于胸,相信会有很大的提升. Autolayout 顾名思义,Autolayout = 自动+布局,也就是当你设置好一定的约束之后,系统会帮你处理布局的细节.那么,在不那么自动的年代,我们用的是什么?我们用的是Frame布局.那么,先来讨论一下Frame布局有哪些问题?举个简…
不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了,怎么才能调用系统的相机?怎么保存信息?怎么做一个像 Twitter 个人页那样的页面?总之就是不知道该从哪切入. 现在回想起来,其实路一直都在,而且有很多条,当初如果有人能够指出一条还不错的道,或许就能走得不那么艰难.于是就有了这篇文章,希望对后人能有所帮助吧. 基础 一定的编程经验 这里说的编程经…
<Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法>([英]Matt Galloway) 很多面试题有涉及 <IOS数据库应用高级编程(第2版)>([美]艾烈希(Patrick Alessi)) <移动开发经典丛书・iOS网络高级编程:iPhone和iPad的企业应用开发>([美]考克斯(Jack Cox),[美]琼斯(Nathan Jones),[美]舒姆斯基(John Szumski)) <移动开发经典丛书:i…
第一,熟悉ARC机制:首先要了解ARC的前世今生.假设了解不清楚会导致两种可能,1,一个对象的引用莫名奇异为空.或失效了.这个一般都能在开发阶段及时发现,由于会导致应用异常.2.导致内存溢出:不了解ARC机制非常easy导致内存不能被正确释放,这类问题会非常隐蔽. 若非特意去做内存測试,那么都会在用户使用的阶段才会被暴露出来,由于内存消耗是个累积的过程.用户不断使用APP,至到内存耗尽.异常退出. 第二,了解Block的使用方法:我使用后的感受是,能够把一个操作的不同结果的处理放在一起,而不用分…
多线程 注意:iOS关于UI的刷新和添加必须在主线程中操作! pthread的创建方法: pthread_t pthread; //第一个参数 线程指针 //第二个参数 线程的一些属性 //第三个参数 函数指针 用于执行方法 //第四个参数 线程中的传值 pthread_create(&pthread, NULL, run, NULL); 当应用程序刚运行的时候, 系统会自动为我们开放一个线程,该线程为主线程. 子线程是程序员用代码手动开启的线程,它存在的意义是为了执行耗时操作的任务. 一.NS…
一.配置环境(:后为在终端输入的命令) 打开终端 查看自己电脑的Ruby环境:gem sources -l 如果环境已经是淘宝镜像了,此时不需要再进行环境的修改. 如果不是,发送gem sources —remove https://rubygems.org/移除当前镜像,然后gem sources -a https://ruby.taobao.org/来添加淘宝镜像. 二.安装Cocoapods 1.下载:sudo gem install Cocoa pods. 2.设置copos:pod s…
1 什么是block 对于闭包 (block),有很多定义,其中闭包就是能够读取其它函数内部变量的函数,这个定义即接近本质又较好理解.对于刚接触Block的同学,会觉得有些绕, 因为我们习惯写这样的程序main(){ funA();} funA(){funB();} funB(){.....}; 就是函数main调用函数A,函数A调用函数B... 函数们依次顺序执行,但现实中不全是这样的,例如项目经理M,手下有3个程序员A.B.C,当他给程序员A安排实现功能F1时,他并不等着A完成之后,再 去安…
1 多线程是什么 多线程是个复杂的概念,按字面意思是同步完成多 项任务,提高了资源的使用效率,从硬件.操作系统.应用软件不同的角度去看,多线程被赋予不同的内涵,对于硬件,现在市面上多数的CPU都是多核的,多核 的CPU运算多线程更为出色:从操作系统角度,是多任务,现在用的主流操作系统都是多任务的,可以一边听歌.一边写博客:对于应用来说,多线程可以让应用 有更快的回应,可以在网络下载时,同时响应用户的触摸操作.在iOS应用中,对多线程最初的理解,就是并发,它的含义是原来先做烧水,再摘菜,再炒菜的工…