iOS 小知识点

1. 图片的内存优化

两种加载图片的方法,各有优点和缺点。
imageNamed:这个方法加载完图片后,图片会驻留内存,坏处:占用内处,好处:调用速度很快
imageWithContentsOfFile:这个方法当图片用完后回释放内存,好处:不占用内存,性能比较好,坏处:速度慢.

2. NSBundle

1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹
2> 利用mainBundle就可以访问软件资源包中的任何资源
3> 模拟器应用程序的安装路径
/Users/aplle/资源库/Application Support/iPhone Simulator/7.1/Applications

3. Xcode文档安装路径

/Applications/Xcode.app/Contents/Developer/Documentation/DocSets

4. Xcode模拟器安装路径

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

5. 隐藏导航栏

- (BOOL)prefersStatusBarHidden{
    
    return YES;
}

6. instancetype

instancetype在类型表示上,跟id一样,可以表示任何对象类型

instancetype只能用在返回值类型上,不能像id一样用在参数类型上

instancetype比id多一个好处:编译器会检测instancetype的真实类型

7. Xib文件的加载

方法1

NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"MJAppView" owner:nil options:nil];

这个方法会创建xib中的所有对象,并且将对象按顺序放到objs数组中
(如果xib如右图所示,那么objs数组中依次会有3个对象:1个UIView、1个UIButton、1个UISwitch)

方法2
bundle参数可以为nil,默认就是main bundle

UINib *nib = [UINib nibWithNibName:@"MJAppView" bundle:[NSBundle mainBundle]];
NSArray *objs = [nib instantiateWithOwner:nil options:nil];

在开发阶段,面向开发者的是xib文件; 当把应用装到手机上时,xib文件就会转为nib文件

8. Xib和storyboard对比

共同点:
都用来描述软件界面
都用Interface Builder工具来编辑

不同点
Xib是轻量级的,用来描述局部的UI界面
Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系

9. Xcode头文件

1).Xcode自带头文件的路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk/System/Library/Frameworks/UIKit.framework/Headers

2).修改了系统自带头文件后,Xcode会报错
解决方案:删掉下面文件夹的缓存即可(aplle是电脑的用户名)
/Users/aplle/资源库/Developer/Xcode/DerivedData
或者
/Users/aplle/Library/Developer/Xcode/DerivedData

10. 封装创建View的代码, 让用户不知道是通过xib创建的还是通过代码创建的,安全,扩展性比较好。

  • 封装一个类方法
+ (instancetype )loadNib{
    return  [[NSBundle mainBundle]loadNibNamed:@"appView" owner:nil options:nil][0];
}

你可能感兴趣的:(iOS 小知识点)