iOS 之旅--视频收获笔记(持续更新)

1、用代码搭建界面的时候,可以使用 getter 的方法去实现每个控件的创建

@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方法初始化,

- (NSArray *) listArray
{
    if (_listArray == nil) {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"ListArray" ofType:@"plist"];

        _listArray = [NSArray arrayWithContentsOfFile:path];
    }
    return _listArray;
}

3、上面的 get 方法 称为“懒加载”或者 “延迟加载”。

4、上面获取本地文件的时候使用的是

NSString *path = [[NSBundle mainBundle] pathForResource:@"ListArray" ofType:@"plist"];

[NSBundle mainBundle] app 应用文件路径,
路径下查找名字为 ListArray,格式为 plist 的文件。

// 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 类,

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

[NSString stringWithFormat:@"%02d",1]
01
不到两位的补0

[NSString stringWithFormat:@"%.3f",0.02]
0.020
%f,默认应该是6位。   ->    0.020000
小数点后几位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值