1.presentViewController和pushViewController区别:
presentViewController:与dismissViewControllerAnimated配对使用,不含有导航条
pushViewController:push后的控制器view显示导航条
2.- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory方法理解:
作用:1.判断path下文件是否存在
2.判断是文件还是目录(isDirectory是传出参数,用于判断是文件还是目录)
3.创建block匿名函数之前一般需要对self进行weak化,否则造成循环引用无法释放controller:
__weak MyController weakSelf = self 或者 __weak __typeof(self) weakSelf = self;
执行block方法体的时候也可以转换为强引用之后再使用:MyController strongSelf = weakSelf; if (!strongSelf) { return; }
- 告诉tableView所有cell的高度是自动计算的(根据设置的约束来计算)
self.tableView.rowHeight = UITableViewAutomaticDimension;
5.对于@property关键字,在类中一般声明私有成员变量以及setter和getter方法,而在分类中只会生成setter和getter方法
- (void)load{
NSLog(@"%f);
}访问分类中的变量
6.Invalid operands to binary expression:类型不匹配,可能是整形变量定义时前面加了*
7.在类方法中,有些框架的方法不能被调用?(sd_setImageWithURL)
8.关于XMGViewController *vc = [[XMGViewController alloc] init]中的init方法小结:
init方法底层默认会调用initWithNibName方法,首先判断nibName有没有值,若有值,则直接加载nibName指定的文件,若没有执行以下代码:
1.若nibName为空,则加载与控制器同名的xib,XMGViewController.xib
2.若没有与控制器同名的xib,则加载相似名称的xib,XMGView.xib
3.若没有与控制器相似名称的xib,则系统默认创建一个空的view
9.当页面跳转,跳转到的页面无法设置背景色的时候可能是控制器没有view
10.快速将项目提交到远程代码库的方法:
1.在oschina创建代码库
2.利用xcode将远程代码库check到本地初始化,本地化。
3.将已经创建的项目放到与git同级的目录下,用xcode打开项目,然后点击commit,并且同事勾选push一切就ok了。
11.layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews
但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero时,也会触发
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
12.动态语言与静态语言的区别:
静态语言的数据类型是在编译时确定的,动态语言的数据类型是在程序运行时确定的.多数静态语言在使用之前,必须声明数据类型;
oc动态语言的三大特性:动态类型\动态绑定\动态加载