iOS开发实战小知识点(一)

记录开发过程中遇见的一些小问题和知识点

1.在release模式下,可以在控制台po打印属性信息方法:

在Build Setting -> Optimization Level 下,将release模式设置和debug模式一致即可。 发布的的时候记得改回来哦

2.关于block的使用

情景:开发过程中遇见一个很奇怪的bug:在debug模式下程序运行正常,但是在release模式下,程序运行失败。一段引用block的代码导致崩溃。定义block的时候没有带参数,但是在调用block的时候,不小心传了一个参数,就是这个原因导致程序在release模式下程序闪退。

分析其原因:

1.debug模式和release模式的不同:debug模式内存释放不是立即释放,而release模式下,内存是立即释放。在调用block的时候导致闪退。 不过这里我有一个不明白的地方:为什么定义block的时候不带参数,但使用的时候可以传参,程序不报错呢?
2.还有一点说明:虽说定义的时候不带参数,但是调用的时候带了参数,一旦你使用了这个传过来的参数,程序直接崩溃。

3.NavigationBar切换背景异常问题

在切换界面的时候,NavigationBar的background可能会出现闪动异常,通过图层查看,将BackGroundImage初始化即可。即:searBar.backgroundImage = [[UIImage alloc] init];

4.UILabel设置numberOfLines=0无效

如果设置无效,加多一个条件即可:
label.numberOfLines = 0;
label.preferredMaxLayoutWidth = MaxWidth;

5.UITableView进入的多样式

多样式是指:呈现cell的时候,给cell添加一些你想要的动画效果。
实现:我直接的想法:在代理方法- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;这里添加cell的动画。但是这样会出现一些问题,会先呈现cell在次加载cell动画。

真实实现:1.最好将tableView的背景色设置为clear模式。
2.将tableViewCell的分隔样式去掉self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
3.只给可视的cell(tableView.visibleCells)添加动画即可,不然每次滑入滑出,重新加载都会出现自定义动画。
4.最关键一点,在加载tableView之后,在添加自定义的cell动画,在添加这个cell动画之前确定tableView cell的个数,在调用[self.tableView reloadData];即可出现你自定义cell的动画了。

你可能感兴趣的:(iOS开发实战小知识点(一))