iOS错误总结(三)

时间:2023-03-09 21:04:37
iOS错误总结(三)

1.如果tableView设置为分组的样式(默认是有cell之间的分割线,可以设置颜色),默认有组以及组尾的高度

需要手动在组头组尾的代理方法中进行组高的设置(如果想设置为0,最好写0.01)

2.组头如果有标题的话,如果想在上面加一个Label的话,最好是自定义组头

3.如果设置在tableView的init方法中设置tableView的分组样式的话

例如重写了tableVeiw的init方法

//初始化方法

-(instancetype)init{

self = [super initWithStyle:UITableViewStyleGrouped];

self.tableView.showsVerticalScrollIndicator = NO;

self.tableView.showsHorizontalScrollIndicator = NO;

return self;

}

这时候就要考虑,init执行的同时,也操作了tableView,这是会在init的同时执行viewDidLoad的方法

如果init完紧接着执行了push该tableViewController的相关操作,但push之前给tableView的数据源进行了赋值

这时候就要考虑   setupUI的相关操作是在数据源的set方法之前还是之后进行的了,否则init了tableViewController还未设置数据就setupUI

会导致视图无数据

4.数据文件管理器,保存文件的方式

//这里将图片放在沙盒的documents文件夹中

NSString * DocumentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

//文件管理器

NSFileManager *fileManager = [NSFileManager defaultManager];

//把刚刚图片转换的data对象拷贝至沙盒中 并保存为image.png

[fileManager createDirectoryAtPath:DocumentsPath withIntermediateDirectories:YES attributes:nil error:nil];

[fileManager createFileAtPath:[DocumentsPath stringByAppendingString:@"/image.png"] contents:data attributes:nil];

5.使用textField监听输入变化,使用UIControlEventEditingChanged键值

6.只有有footView时才有点击或下拉加载更多

7.

NSNumber *sex = nil;

if (sex==nil) {

NSLog(@"%ld",[sex integerValue]);//打印0

}

8.关于tableView是否进行注册的声明

dequeueReuseableCellWithIdentifier方法可以不用注册,

但是必须对获取回来的cell进行判断是否为空,if(cell!=nil)

但是如果使用dequeueReuseableCellWithIdentifier:forIndexPath则是要进行注册

9.

若使用Xib,使用 registerNib: 注册,dequeue时会调用awakeFromNib

不使用Xib,使用 registerClass: 注册, dequeue时会调用initWithStyle:withReuseableCellIdentifier:

10.使用sd下视图的时候,获取image

[ImageView sd_setImageWithURL:url completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

if (image)//即可得到sd下载的image

{}

}];

11.小技巧,,set方法可以接一层进行

cell.cellView.urlString =modal.urlString;

走的是cell中自定义控件cellView中的urlString属性的set方法

12.pch,只是项目名称/pch 就行了

iOS错误总结(三)