1 ## addObject:和addObjectsFromArray:的区别 3 self.topics = @[20, 19, 18]
4 moreTopics = @[17, 16, 15]
5
6 self.topics = @[20, 19, 18, @[17, 16, 15]]
7 [self.topics addObject:moreTopics];
8
9 self.topics = @[20, 19, 18, 17, 16, 15]
10 [self.topics addObjectsFromArray:moreTopics];
11 12
13 ## 集成MJRefresh
14 - [github](https://github.com/CoderMJLee/MJRefresh)
15 - 基本用法
16
17 18 self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadNewTopics)];
19 [self.tableView.mj_header beginRefreshing];
20
21 self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreTopics)];
22 23
24 ## 利用AFN取消请求
25 26 // 取消所有请求
27 for (NSURLSessionTask *task in self.manager.tasks) {
28 [task cancel];
29 }
30
31 // 取消所有请求
32 [self.manager.tasks makeObjectsPerformSelector:@selector(cancel)];
33
34 // 关闭NSURLSession + 取消所有请求
35 // NSURLSession一旦被关闭了, 就不能再发请求
36 [self.manager invalidateSessionCancelingTasks:YES];
37
38 // 注意: 一个请求任务被取消了(cancel), 会自动调用AFN请求的failure这个block, block中传入error参数的code是NSURLErrorCancelled
39 40
41 ## UIAlertController
42 43 UIAlertController *controller = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
44
45 [controller addAction:[UIAlertAction actionWithTitle:@"收藏" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
46 NSLog(@"点击了[收藏]按钮");
47 }]];
48
49 [controller addAction:[UIAlertAction actionWithTitle:@"举报" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
50 NSLog(@"点击了[举报]按钮");
51 }]];
52
53 [controller addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
54 NSLog(@"点击了[取消]按钮");
55 }]];
56
57 // [controller addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
58 // textField.textColor = [UIColor redColor];
59 // }];
60
61 [self.window.rootViewController presentViewController:controller animated:YES completion:nil];