您的位置:首页 > 移动开发 > IOS开发

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
小数点后几位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: