ViewController之iOS5.1
摘要:ViewController之iOS5.11.You never directly assign the views to the window. Instead, you assign a view controller to the window, and the view controller automatically adds its view to the window。2.Every view is controlled by only one view controller.3.content view controllers and container view contro
阅读全文
【iOS】APP之数据存储
摘要:【iOS之App数据存储】 1、to obtain access to locations outside of your app’s container directory, you must request appropriate entitlements. 为了能够访问app目录之外的目录,你必须申请合适的权限。 2、an app is generally prohibited from accessing or creating files in directories outside of its home directory. app通常被禁止在主目...
阅读全文
Objective-C Runtime IV 【使用隐藏的参数】
摘要:使用隐藏的参数当objc_msgSend找到方法对应的实现时,它将直接调用该方法实现,并将消息中所有的参数都传递给方法实现,同时,它还将传递两个隐藏的参数:接收消息的对象方法选标这些参数帮助方法实现获得了消息表达式的信息。它们被认为是”隐藏“的是因为它们并没有在定义方法的源代码中声明,而是在代码编译时是插入方法的实现中的。尽管这些参数没有被显示声明,但在源代码中仍然可以引用它们(就象可以引用消息接收者对象的实例变量一样)。在方法中可以通过self来引用消息接收者对象,通过选标_cmd来引用方法本身。在下面的例子中,_cmd指的是strange方法,self指的收到strange消息的对象。-
阅读全文
Objective-C Runtime III【objc_msgSend函数】
摘要:objc_msgSend函数关于Selector,什么 是Selector,Selector就是一个字符串,用来表示一个方法。在Objective-C中,消息是直到运行的时候才和方法实现绑定的。编译器会把一个消息表达式,[receiver message]转换成一个对消息函数objc_msgSend的调用。该函数有两个主要参数:消息接收者和消息对应的方法名字——也就是方法选标:objc_msgSend(receiver, selector)同时接收消息中的任意数目的参数:objc_msgSend(receiver, selector, arg1, arg2, ...)该消息函数做了动态绑定所需
阅读全文
Objective-C Runtime II 【发送消息 vs 调用函数】
摘要:【发送消息 vs 调用函数】 在Objective-C中,发送消息最终会被转化为函数调用,避免动态绑定的唯一办法就是取得方法的地址,并且直接象函数调用一样调用它。当一个方法会被连续调用很多次,而且您希望节省每次调用方法都要发送消息的开销时,使用方法地址来调用方法就显得很有效。 利用NSObject类中的methodForSelector:方法,您可以获得一个指向方法实现的指针,并可以使用该指针直接调用方法实现。methodForSelector:返回的指针和赋值的变量类型必须完全一致,包括方法的参数类型和返回值类型都在类型识别的考虑范围中。下面的例子展示了怎么使用指针来调用setFill...
阅读全文
Objective-C Runtime I
摘要:核心理念Objective-C语言将决定尽可能的从编译和链接时推迟到运行时。早期版本和现行版本Objective-C运行时系统有两个已知版本:早期版本和现行版本。现行版本主要是Objective-C 2.0及与其相关的新特性。在现行版本中,最显著的新特性就是实例变量是"健壮“(non-fragile)的:在早期版本中,如果您改变类中实例变量的布局,您必须重新编译该类的所有子类。在现行版本中,如果您改变类中实例变量的布局,您无需重新编译该类的任何子类。此外,现行版本支持声明property的变量的统一声明。平台iPhone程序和Mac OS X v10.5及以后的系统中的64位程序使用
阅读全文
iOS之ARC下的Objective-C指针与CoreFoundation指针之间的转换
摘要:【Objective-C指针与CoreFoundation指针之间的转换】 ARC仅管理Objective-C指针(retain、release、autorelease),不管理CoreFoundation指针,CF指针由人工管理,手动的CFRetain和CFRelease来管理,注,CF中没有a...
阅读全文
iOS之ARC下的Block
摘要:【ARC的特性】 ARC下,所有NSObject类型指针, 1. 默认为__strong类型 2. 可以显示的指定为__weak类型,__weak类型指针在所指向对象销毁后会自动置为nil 3. __autorelesing类型用于inout参数类型 ARC下,当一个函数返回一个NSObject指针时,编译器会帮我们实现autorelease调用。例如: return pObject; 编译器会帮我们扩展为 return [pObject autorelease]; ARC下,不能显式release,可以使用将值赋为nil来让编译器为我们release。【ARC与Block】 ...
阅读全文
iOS之小心使用Storyboard
摘要:1. Storyboard的优点。 a). 流程结构清晰 b). 有内置的segue支持 c). 方便的实例化ViewController2. Storyboard的缺点。 a). 所有的ViewController都在同一个Storyboard里编辑,随着场景的增加, i).XCode打开Storyboard的速度会越来越慢。 ii). 所有的ViewController会并列在编辑器左侧,不方便编辑。 b). 无法单独调整每个整场景的生命周期,所有的场景生命周期由storyboard控制,一旦加载了一个场景,除非storyboard卸载,否则无法。(一个超级大bug)...
阅读全文
iOS GLES Minute
摘要:1、系统要提供 A、rendering contexts (渲染环境) B、system framebuffers(系统帧缓冲区)2、iOS does not provide system framebuffers. Instead, iOS extends the framebuffer object provided by OpenGL ES to allow framebuffers that share data with Core Animation. iOS没有提供system framebuffer,代替的是,iOS扩展了framebuffer,使得framebuffer...
阅读全文
iOS Provision 要点记录
摘要:1、建立CSR会让Keychain Access同时生成private key、public key,用来作为你本人开发者的验证。 private key保存在login->keys里面。2、开发者证书:分为develop和Distribution。开发者证书包含public key。3、Bundle Seed ID 、 Bundle ID4、开启APN后,可以下载Push SLL 证书。APN分为develop和release。5、provision 分为develop 和release。.csr 证书签名请求.cer 开发者证书、APN Provider SSL证书.p12 开发者私
阅读全文
OpenGL之颜色缓冲区、深度缓冲区、模板缓冲区
摘要:【颜色缓冲区】 颜色缓冲区(COLOR_BUFFER)就是帧缓冲区(FRAME_BUFFER),你需要渲染的场景最终每一个像素都要写入该缓冲区,然后由它在渲染到屏幕上显示.【深度缓冲区】 深度缓冲区(DEPTH_BUFFER)与帧缓冲区对应,用于记录上面每个像素的深度值,通过深度缓冲区,我们可以进行深度测试,从而确定像素的遮挡关系,保证渲染正确.【模板缓冲区】 模版缓冲(STENCIL_BUFFER)与深度缓冲大小相同,通过设置模版缓冲每个像素的值,我们可以指定在渲染的时候只渲染某些像素,从而可以达到一些特殊的效果.
阅读全文
iOS之Push Notification认证
摘要:【Push NOtification 认证】【注解】 Push Notification认证包括两个方面,接入认证和传输认证。认证过程中,涉及到APNS与Provider,APNS与Client的相互认证,涉及三方的三个证书。APNS有一个惟一的公共证书,用来提供对外所有Provider和Client的认证。Provider有一个证书,用来传递给APNS认证,必须之前向Apple请求生成。Client有一个证书,有激活设备时产生,保存在本机,对开发者透明。
阅读全文
Responder Chain of iOS
摘要:【Responder Chain of iOS】 [First Responder]
阅读全文
Bundles and Packages
摘要:【E文原文】 Although bundles and packages are sometimes referred to interchangeably, they actually represent very distinct concepts:Apackageis any directory that the Finder presents to the user as if it were a single file.Abundleis a directory with a standardized hierarchical structure that holds executa
阅读全文
POSIX Threads & Cocoa Threads
摘要:【Protecting the Cocoa Frameworks】 For multithreaded applications, Cocoa frameworks use locks and other forms of internal synchronization to ensure they behave correctly. To prevent these locks from degrading performance in the single-threaded case, however, Cocoa does not create them until the appl.
阅读全文
iOS用户界面元素中英文对照表
摘要:【iOS用户界面元素中英文对照表】状态栏 -- Status Bar导航栏 -- Navigation Bar工具栏 -- Tool Bar标签栏 -- Tab Bar警告 -- Alert动作表单 -- Action Sheet模式视图 -- Modal View表格视图 -- Table View 表格样式 1) 无格式样式UITableViewStylePlain 2)分组样式UITableViewStyleGrouped 单元格样式 1)默认单元格样式UITableViewCellStyleDefault 2)副标题单元格样式UITableVie...
阅读全文
iOS学习进展
摘要:【正在研究的书】【后续研究的书】 《Predicate Programming Guide》 《Core Data Programming Guide》 《Core Data Model Versioning and Data Migration Programming Guide》 《Core Data Utility Tutorial》【已经研究完的书】 《iPhone人机界面指南》 《Cocoa 是什么?》 《基于Objective-C的面向对象编程》 《[iOS]_[Objective-C简介]》 《Learning Objective-C》 《iOS技术概述》 ...
阅读全文
iOS三种应用程序风格
摘要:【iOS三种应用程序风格】1、效率型应用程序 具有组织和操作具体信息的功能。效率型应用程序通常用于完成比较重要的任务。邮件是效率型应用程序的典型例子。 效率型应用程序中的典型的用户交互模型通常包含:组织列表从列表中添加和删除逐步细化信息直到达到目标的详细级别,而后执行与该详细级别对应的任务 在众多类型的iPhone应用程序中,效率型应用程序最有可能在设置应用程序中提供用户可操作的选项或者设置功能。这是因为效率型应用程序工作中涉及到大量信息以及许多潜在的访问和管理方法。但是,需要强调的是,用户很少需要改变这些设置,所以这里不应包含那些能够在主界面中更改的配置信息。 2、实用型应用程序 ...
阅读全文
Cocoa Touch 开发框架
摘要:【Cocoa Touch 开发框架】 UIKit为应用程序界面开发提供所需的类,包括创建、管理等。跟ApplicationKit相比,虽然用途一致,但从外观到实现都有很大不同。UIKit库所有类使用UI前缀,常见的有UIView、UIViewController之类。Foundation从名字也能看出点端倪,为程序开发提供了基础类,包括字符串、数组、文件系统操作等。【主要框架】 【框架列表】【官方中文资源】 《iPhone应用程序编程指南》/《iOS 应用程序开发指南》 http://www.apple.com.cn/developer/iphone/library/documentati..
阅读全文