IOS-开发小记 填坑之旅

很多知识点,并不难。只是,根本不知道这个概念,每次都要探坑后,才会知道有这个东西。
 
1、编译
ld: symbol(s) not found for architecture x86_64
在.o 文件 中 找不到定义。
oc编译是先编译出.o文件,再链接。
如果在.h 声明,在.m没有实现,便会找不到符号(symbol)。
需要注意的是,如果没有用到这个类,就没关系。
 
 
 2、UITableViewCell
restoration identifier 和 reuse identifier 不一样。 
restoration identifier 是恢复用的。
reuseIdentifier 才是cell用的。
tableViewcell 的 reuseIdentifier只有在初始化的时候可以赋值,之后一直不变;
如果通过nib加载cell,需要注册nib文件。
 
 3、自定义UIView
自定义view 的init 可以写在awakeFromNIb
析构 可以写在dealloc
 但是要考虑, 是否应该添加一个initView 手动调用。
自定义的View应该是一个相对完整的显示对象,通过外界初始化进来的数据,可以完整的显示,并且根据需要,抛出相应的操作事件。
 
 
 4、通过nib加载Controller
通过viewController initWithNib 加载到舞台上的元素
viewDidLoad 在add subView: controller.view 的时候触发。
但是,这并不代表,这个controller已经在管理内。
需要手动 addChildController。
注意两个概念,一个是view的hierarchy(addSubView),一个是Controller(addChildcontroller)。
 
苹果新的API增加了addChildViewController方法,并且希望我们在使用addSubview时,
同时调用[self addChildViewController:child]方法
将sub view对应的viewController也加到当前ViewController的管理中。  
对于那些当前暂时不需要显示的subview,只通过addChildViewController把subViewController加进去;
需要显示时再调用transitionFromViewController方法。
将其添加进入底层的ViewController中。
 
// 方法 addChildViewController:
removeFromParentViewController: transitionFromViewController:toViewController:duration:options:animations:completion:
willMoveToParentViewController:
didMoveToParentViewController: // 属性 @property(nonatomic,readonly) NSArray *childViewControllers
 

 
5、Xib的实用
file’s owner 和view controller 一起用,用initWithnib 
 
如果只是view 可以自定ui
 
 
 
原文地址:https://www.cnblogs.com/loying/p/4718293.html