CALayer、动画、frame 1.图层的绘制图层,即CALayer的绘有两种实现方案: 自己绘制; 交给代理对象绘制。 1.1.自己绘制图层自己绘制时,需要重写 -drawInContext 方法,具体步骤为: 调用 CALayer 对象的 setNeedsDisplay 方法触发重绘; 重写 drawInContext: 方法绘制新内容。 #示例1.1: 1234567891011121314151617181920 2017-12-29 OC #UI
UI布局 & 适配 1.适配的进化1.AutoresizingAutoresizing是苹果早期的界面适配方案,那时苹果的设备还不算多,iPhone 只有 4s 及其之前的产品,都是3.5英寸屏幕;iPad 也只有 iPad1、iPad2,都是9.7英寸。并且当时 iOS 上的应用很少需要适配横屏,所以Autoresizing能够满足绝大部分的适配需求。 xib或者故事板(iOS5)中的6条线: 代码中的6个枚举值 2017-12-27 OC #UI
+load & +initialize 有时,我们需要在应用启动阶段,或者类初始化之前处理一些指定的需求,这时你可能需要这俩方法: 12+ (void)load;+ (void)initialize; 1.load Invoked whenever a class or category is added to the Objective-C runtime; implement this method to perform clas 2017-12-25 OC #机制
构造器 1、指定构造函数(Designated Initializer)在 OC 的很多头文件中,都会出现NS_DESIGNATED_INITIALIZER这个宏,如: 12- (instancetype)initWithNibName:(NSString *)nibNameOrNilbundle:(NSBundle *)nibBundleOrNil NS_DESIGNATED_INITIALIZER; 2017-12-24 OC #机制
文件下载 iOS 中实现文件下载有以下几种方式: 一.NSDataNSData 提供了类方法实现文件下载: 123NSURL *aUrl = [NSURL URLWithString:@"https://example.jpg"];NSData *data = [NSData dataWithContentsOfURL:aUrl];UIImage *image = [UIImage i 2017-12-22 OC #网络
网络 #1.网络分层 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 #2.术语2.1.TCP 传输控制协议:传输层协议之一; 面向连接:传输数据前需要三次握手建立连接; 稳定可靠:传输数据时有响应、重发、拥堵控制机制; 时效性低:握手、响应、重发等机制会消耗大量时间,占用大量系统资源。 主要用在需要可靠传输数据的地方,如文件传输协议:HTTP、HTTPS、FTP;邮件传输协议:POP、 2017-12-20 OC #网络
沙盒 & 本地持久化方案 1、沙盒 iOS程序默认情况下只能访问程序自己的目录,这个目录被称为“沙盒”。 沙盒的目录结构: 123456"应用程序包"- Documents- Library *Caches *Preferences- tmp 1.1.”应用程序包”:这里存放的是应用程序的源文件,包括资源文件和可执行文件。 12String *path = [[NSBundle mainBund 2017-12-05 OC #数据
数据库:Core Data 一.简介Core Data 是一个对象-关系映射持久化方案,处于应用与持久化存储之间,可以将应用中的对象转化成数据,保存在SQLite文件等持久化存储中,也可以缓存临时数据。在单台设备上 Core Data 支持回滚重做,在多台设备间使用同一 iCloud 账户同步数据时,Core Data 会自动将结构映射到 CloudKit 中。 在.xcdatamodeld数据模型中,可以定义数据类型与关 2017-12-02 OC #数据
FAQ-常见问题 1、VC的生命周期 -initWithCoder: //VC初始化 -initWithNibName:bundle: -loadView //从nib载入视图或返回一个自定义视图 -viewDidLoad //视图载入完成并开始进一步的设置 -viewWillAppear: //视图即将出现在屏幕上 -updateVi 2017-11-24 OC #FAQ
atomic线程安全吗? 1.什么是线程安全? 线程安全,是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。 2.atomic与nonatomic的区别atomic 与 nonatomic 的本质区别在于getter、setter方法实现上的不同: #示例1:nonatomic属性的实现 123 2017-11-24 OC #多线程