- 十分钟让你明白Objective-C的语法(和Java、C++的对比)
- Objective-C语法快速参考 简单的介绍,语法快速入门。
- 维基百科Objective-C 推荐阅读,维基百科对于Objective-C较为详细的介绍。
- 苹果官方Objective-C开发说明文档 官方权威。
Objective-C是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。 动态语言的优势在于:写代码时更具灵活性,可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。 所以Objective-C只有编译器是不够的,还需要一个运行时系统来执行编译后的代码,这个运行时系统就是Objc Runtime。
Objective-c有一套基于对象引用计数的内存管理体系。
Objective-c内存管理经历了几个阶段的演变。
- Objective-C内存管理教程和原理剖析(一)基本原理
- Objective-C内存管理教程和原理剖析(二)口诀与范式
- Objective-C内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现
- Objective-C内存管理教程和原理剖析(四)系统自动创建新的autorelease pool
- Objective-C Programming:The Big Nerd Ranch Guide (2nd Edition)
- [iOS 编程(第四版)] The Big Nerd Ranch 著
- [iOS开发进阶] 唐巧著
iOS中进行界面布局有三种方式:代码手写UI、使用InterfaceBuilder进行xib布局、storyboard。
代码手写UI,完全通过手写代码布局,灵活性强,代码可重用,但开发效率低,而且必须到运行时才能知道布局效果。
xib,使用InterfaceBuilder可视化界面布局,所见即所得,开发效率高,但灵活性差。
storyboard,由多个xib以及导航关系合成,可看做是一组xib,以及xib之间的转换方式的集合。故事版清晰地展示出界面中的逻辑和层次结构。也是Apple对开发者的建议和未来的方向。
iOS6新增的Auto Layout和iOS8新增的Size Classes。
- 为iPhone 6设计自适应布局
- iOS 开发实践之 Auto Layout
- iOS8 Xcode6中Size Classes简单使用教程
- Auto Layout 官方文档
- Size Classes 官方文档
通过代码创建约束实现Auto Layout,Apple难用的NSLayoutConstraint工厂。
同样也是通过代码创建约束,Visual Format Language基于字符串,不利于编译器检查,可读性差。
- 使用Auto Layout中的VFL(Visual format language)
- 在UIScrollView中使用Auto Layout中的VFL
- Visual Format Language 官方文档
轻量级的布局框架,简洁的链式语法,可读性高。
利用Swift丰富的操作符重载特性,声明Auto Layout。
一个干净的原生API包装框架。
Asset Catalog用来管理任意图片(包括app icon、启动图片)如@1x,@2x,@3x图片,使用的时候使用Asset名字。还可以可视化处理图片进行拉伸。
- Asset Catalog 官方文档
还可以通过使用向量图(PDFs)加入到asset catalogs,Xcode可以自动地根据它们生成位图。
关于@1x,@2x,@3x:iOS中图片通过@1x,@2x,@3x为不同分辨率的设备统一为一个尺寸所作的标记
- iPhone屏幕适配,历史及现状 每一代iPhone屏幕适配的详细介绍。
- iPhone、iPad app设计规范
- iOS APP设计一稿支持iPhone5/iPhone6/Plus设计流程
- APP界面设计——IOS字体规范与多屏幕适配 关于字体的规范。
IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。
1.每个应用程序都有自己的存储空间。
2.应用程序不能翻过自己的围墙去访问别的存储空间的内容。
3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。
NSUserDefaults用于存储轻量级的本地数据,以键值对的方式存储。
Bundle就是一个标准化分层化的路径,这个目录保存了可执行代码以及这些代码执行的时候需要的资源文件。
属性列表(Property List)文件是一种用来存储序列化后的对象的文件。属性列表文件的文件扩展名为.plist。
- Introduction to Core Data Programming Guide 官方文档
- Core Data Class Overview
- 初识Core Data(1)、 初识Core Data(2)、 CoreData处理海量数据
iOS中经常要进行网络请求,请求到得一般是json字符串,一般会建一个Model 类来存放这些Json数据。这就需要编写一系列的序列化代码,来把json转换为Model。这很费时间,容易错,不容易修改。 使用一些第三方库能很好的解决了这个问题,而且更易用。
Mantle能简化Cocoa和Cocoa Touch应用的model层,把json转换为Model。
Apple中经常用的委托执行回调。
block也可以实现回调,实现过程比委托回调更简洁。
一种类似广播的消息通知机制。观察者只需要向消息中心注册,当有地方发出这个消息的时候,通知中心会发送给注册这个消息的对象。
KVO源于设计模式中的观察者模式,简单的说就是:指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者。
Core Graphics框架是一组用于绘制2D图形的API,使用CPU进行计算。
Quartz 2D是Core Graphics的一部分,基于C的API。
- Drawing iOS 7 2D Graphics with Core Graphics Core Graphics、Quartz 2D简介。
- An iOS 7 Graphics Tutorial using Core Graphics and Core Image Graphics、Quartz 2D绘图API示例。
- Core Graphics Tutorial for iOS Core Graphics使用实例。
- Quartz 2D Programming Guide 官方文档
Core Animation是iOS与OS X平台上负责图形渲染与动画的基础,可以动画视图和其他的可视元素,完成动画所需的绘帧。
- Core Animation Programming Guide 官方文档
- Core Animation Programming Guide官方文档中文版pdf
- iOS-Core-Animation-Advanced-Techniques英文版pdf
- iOS-Core-Animation-Advanced-Techniques中文翻译
关于Xcode的一些介绍和调试技巧。
开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。使用CocoaPods的目的是可以自动化、集中、直观的管理第三方开源库。配置安装CocoaPods需要同时配置Ruby环境。
- Host生成器,再也不用担心谷歌打不开,账号登陆不了谷歌,同步不了书签啦。