Objective-C带来了一个重大改进就是Non-fragile ivar.使得i一个类可以随意增加实例变量,不必对子类重新编译.对框架开发者(如苹果)有重大意义. 最新的编译器支持@property可以自动synthesize实例变量.等于ivar+getter+setter方法. 属性修饰关键字 atomic.LLVM 4新增加的特性.是指存取器方法是thread-safe.并不保证整个变量是thread-safe的.如 NSMutableArray *stuff.self.stuff和s…
http://blog.csdn.net/yixiangboy/article/details/50662704 一.案例演示 最近有一个小需求,就是要做一个圆形进度条,大概样子如下: . 在不知道有CAShapeLayer的strokeStart和strokeEnd属性的时候,我采取的方法就是实时的 移除旧的CAShapeLayer 然后重绘这个圆形的CAShapeLayer.显然这种方式的效率是不高的.后来在一次看别人Demo的时候,发现别人使用了CAShapeLayer的strokeSta…
在iOS开发基础-九宫格(1)中,属性变量 apps 是从plist文件中加载数据的,在 viewDidLoad 方法中的第20行.26行中,直接通过字典的键名来获取相应的信息,使得 ViewController 直接与数据打交道,如果频繁这样使用,可能会不小心把键名写错,而程序却不会报错.因此,考虑把字典数据转换成一个模型,把数据封装到模型中去,让 ViewController 与模型交互,而不与数据直接打交道. 修改iOS开发基础-九宫格(1)中的代码: 一.字典转模型介绍 字典转模型的好处…
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可以存放,就是类NSNumber c:NSDATA与NSString互转 d:去除输入框空格(NSString也适用) f:IBOutlet,IBAction说明 2:IOS开发基础知识--碎片2  a:获得另一个控件器,并实现跳转 b:判断IOS版本 c:Button不同状态下背景图片 d:判断设备…
IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例 实例一: Person *person = [[Person alloc] init]; //父…
继续对iOS开发基础-九宫格坐标(5)中的代码进行优化. 优化思路:把字典转模型部分的数据处理操作也拿到模型类中去实现,即将 ViewController 类实现中 apps 方法搬到 WJQAppInfo 类实现. 实例代码 在 WJQAppInfo.h 中添加一个向外公开的接口,其返回处理好的模型数组,方法定义如下: + (NSArray *)appInfoArray; 实现代码如下: //WJQAppInfo.m.将数据处理部分搬到模型类中进行处理 + (NSArray *)appInfo…
继续在iOS开发基础-九宫格坐标(4)的基础上进行优化. 一.改进思路 1)iOS开发基础-九宫格坐标(4)中 viewDidLoad 方法中的第21.22行对控件属性的设置能否拿到视图类 WJQAppView ? 2) viewDidLoad 方法中第18.19行从 xib 文件中读取信息的操作能否封装到 WJQAppView ? 3) viewDidLoad 方法中第23.24行的按钮单击事件能否也放到 WJQAppView 中? 二.实例代码 重写 WjQAppView 类,其头文件内容如…
对iOS开发基础-九宫格坐标(3)的代码进行进一步优化. 新建一个 UIView 的子类,并命名为 WJQAppView ,将 appxib.xib 中的 UIView 对象与新建的视图类进行关联.  WJQAppView 类中声明3个 IBOutlet 属性,与 appxib.xib 中的视图对象包含的 UIImageView . UILabel 和 UIButton 建立连接. WJQAppView 头文件代码如下所示: //WJQAppView.h @interface WJQAppVie…
延续iOS开发基础-九宫格坐标(2)的内容,对其进行部分修改. 本部分采用 Xib 文件来创建用于显示图片的 UIView 对象. 一.简单介绍  Xib 和 storyboard 的比较: 1) Xib 是轻量级的,用来描述局部的UI界面: 2) storyboard 是重量级的,用来描述整个软件的多个界面,并且能演示多个界面之间的连接关系. 二. Xib 的简单使用 按照 Command + N ----> User Interface ----> Empty 新建一个 Xib 文件,并命…
延续:iOS开发基础-图片切换(3),对(3)里面的代码用懒加载进行改善. 一.懒加载基本内容 懒加载(延迟加载):即在需要的时候才加载,修改属性的 getter 方法. 注意:懒加载时一定要先判断该属性是否为 nil ,如果为 nil 才进行实例化. 优点: 1) viewDidLoad 中创建对象的方法用懒加载创建,增加可读性. 2)每个控件的 getter 方法中负责各自的实例化处理,增加代码之间的独立性. 二.代码实例 简化 viewDidLoad 方法如下: - (void)viewD…