深入学习:键值编码
当NIB文件被载入之后,其中的插座变量是通过键值编码(Key-value coding,KVC)来设置的 。键值编码是通过一系列定义在NSObject中的方法实现的,适用这些方法可以通过属性的名称存取属性的值。
- (id)valueForKey:(NSString *)k;
- (void)setValue:(id)v forKey:(NSString *)k;
valueForKey:和setValue:forKey:是通用属性存取方法,可以获取或设置任意对象的属性。
NIB文件在加载时会使用setValue:foeKey:设置插座变量。
Tips:务必遵守存取方法命名规范。其目的不仅仅是方便其他开发者阅读代码,系统也具有一套依赖于命名规范的工作机制,如果不遵守规范,很有可能会发生意外错误。
深入学习:Retina显示屏
Retina显示屏拥有很高的分辨率—-其中4英寸屏幕是640像素x1136像素。
对于矢量图像,不用做任何处理就能在两种设备上有最好的显示效果。如果应用是通过Core Graphics函数绘图的,那么画出图像在不同的设备上会有不同的显示效果。Core Graphics以点为单位描述线,曲线和文字等。
解决方法:开发者需要在应用程序包里嵌入两套图:一套针对非Retina显示屏,像素分辨率和相应的屏幕分辨率点数相同;另一套针对Retina显示屏,像素尺寸比钱一套大一倍。