iOS 之旅--视频收获笔记(持续更新)
2015-09-21 15:46
441 查看
1、用代码搭建界面的时候,可以使用 getter 的方法去实现每个控件的创建
[code]@property (nonatomic, strong) IBOutlet UILabel *pageLabel; ………………省略 - (UILabel *) pageLabel { if (_pageLabel == nil) { _pageLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, self.view.bounds.size.width, 40)]; _pageLabel.text = @"1/5"; _pageLabel.textAlignment = NSTextAlignmentCenter; [self.view addSubview:_pageLabel]; } return _pageLabel; }
这样做的好处是不会让 viewDidLoad函数里面代码过多,看起来代码清晰明了,还可以降低不同控件之间的耦合度。
2、使用 plist 文件来代替 在代码里面写数组、字典的定义,
数据直接写在代码里面,如果数据经常改动,会造成代码扩展性低,放在plist 文件中可以直接修改文件即可,不需要修改代码。
初始化数据同上面1的方法,使用 get方法初始化,
[code]- (NSArray *) listArray { if (_listArray == nil) { NSString *path = [[NSBundle mainBundle] pathForResource:@"ListArray" ofType:@"plist"]; _listArray = [NSArray arrayWithContentsOfFile:path]; } return _listArray; }
3、上面的 get 方法 称为“懒加载”或者 “延迟加载”。
4、上面获取本地文件的时候使用的是
[code]NSString *path = [[NSBundle mainBundle] pathForResource:@"ListArray" ofType:@"plist"];
[NSBundle mainBundle] app 应用文件路径,
路径下查找名字为 ListArray,格式为 plist 的文件。
[code]// name 、text 为 key 值, 是你在 plist 里面设置的key //下面可以获取到 plist 文件中的数据,self.listArray是上面获取到的数组数据。 NSString *imageName = self.listArray[self.index] [@"name"]; NSString *descText = self.listArray[self.index] [@"text"];
5、strong 和 weak 的比较。
ARC 中 dealloc 主要用于调试,判断对象是否被释放。在 OC 中
1、如果对象没有被强引用,会被立即释放。
2、默认的对象,都是强引用。
比如有一个 Person 类,
[code]Person *p = [[Person alloc]init];//p 是强引用类型。 __weak Person *p = [[Person alloc]init]; // p 是弱引用,
IBOutlet的属性一般可以设为weak,是因为它已经被view引用了,除非view被释放,否则IBOutlet的属性也不会被释放,
另外IBOutlet属性的生命周期和view应该是一致的,所以IBOutlet属性一般设为weak。
所以拖出来的控件一般都是 weak,因为它已经被 view 引用了。
自己用代码定义控件,一般常使用 strong 属性,(这里也可以使用 weak,需要初始化之后,使用 [self.view addSubview:_pageLabel]; addSubview可以使此控件(定义的 weak 控件)受 view 管理。)
知乎上别人的一个解释,让大家笑一笑:
因为控件他爹( view.superview )已经揪着它的小辫了( strong reference ),你( viewController )眼瞅着( weak reference )就好了。
当然,如果你想在 view 从 superview 里面 remove 掉之后还继续持有的话,还是要用 strong 的( 你也揪着它的小辫, 这样如果他爹松手了它也跑不了 )。
6、图片小知识
图片格式的影响,1. JPG:压缩比比较高,通常用于照片、网页,属于有损压缩(噪点)
解压缩时,对 CPU消耗大,意味着慢、费电
2. PNG: 压缩比较高
无损压缩,
解压缩时效率高,对 CPU 消耗小,苹果推荐使用 png 格式
7、数字补0
[code][NSString stringWithFormat:@"%02d",1] 01 不到两位的补0 [NSString stringWithFormat:@"%.3f",0.02] 0.020 %f,默认应该是6位。 -> 0.020000 小数点后几位
相关文章推荐
- iOS#import与@class的区别
- IOS学习笔记——Obj-c中实例方法与类方法的区别
- iOS—NSLog各种打印格式
- iOS--进阶知识--Runtime
- Xcode7--坑无法运行iOS9以下的模拟器
- 蓝牙打印小票
- iOS后台保持(whose view is not in the window hierarchy)
- iOS可用内存限制
- iOS CABasicAnimation 缩放动画
- iOS WKWebView
- ios数据存储之偏好设置
- iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
- iOS语法基础
- iOS开发日记22-CocoaPods
- iOS9 兼容那点事
- ios开发者修养
- 我的自白
- ios开发中类方法与self的注意点 与实例方法区别
- iOS沙盒的查看和使用
- ios 数据存储之plist