//注意: NSDictionary * homeworkDic; if ([[dict valueForKeyPath:@"data.homework"] isKindOfClass:[NSDictionary class]]) { homeworkDic = [dict valueForKeyPath:@"data.homework"]; }else { homeworkDic = [self dictionaryWithJsonString:[dict valueForKeyPath:@"data.homework"]]; }
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { // 求出标题按钮的索引 NSUInteger index = scrollView.contentOffset.x / scrollView.width; // index == [0, 4] // 点击对应的标题按钮 HKTitleButton *titleButton = self.titlesView.subviews[index]; //HKTitleButton *titleButton = [self.titlesView viewWithTag:index]; //此代码 索引为0时会报错(viewWithTag 递归查找,包括本身 先查找本身的tag,再查找子视图的tag,父视图默认tag为0,找到的是UIView而不是Button,因此setSelected方法找不到) [self titleButtonClick:titleButton]; }
1.在工程的AppDelegate文件中 @property (nonatomic, unsafe_unretained) UIBackgroundTaskIdentifier taskId; 2.在AppDelegate中的- (void)applicationDidEnterBackground:(UIApplication *)application 方法中 self.taskId =[application beginBackgroundTaskWithExpirationHandler] 用完的时候调用endTask 3.模拟一个长时间的任务 4.后台任务结束的时候要释放定时器
if (![array isKindOfClass:[NSNull class]] && array.count > 0 && array != nil) { }
数据源数组中包含空数组,怎么移除?ios
if ([self.dataArray containsObject:@[]]) { [self.dataArray removeObject:@[]]; }
在一个UIView设置它的Frame的宽度是屏幕的两倍,而后把登陆的View和注册的View同时加载这个View上(注册View.x=这个View宽度的一半),点击切换按钮时改变这个UIView的leadingConstraint(View.x)就可让这两个View显示。json
iOS11 HTTP load failed (error code: -999)api
// 1.设置非校验证书模式 _sessionManager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; _sessionManager.securityPolicy.allowInvalidCertificates = YES; [_sessionManager.securityPolicy setValidatesDomainName:NO];
- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; // 禁用返回手势 if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; } } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; // 开启返回手势 if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = YES; } }
[[UIApplication sharedApplication] performSelector:@selector(suspend)];数组
self.navigationController.hidesBarsOnSwipe = YES;缓存
ld: library not found for -lAFNetworking 这个错误是说编译时找不到AFNetworking这个连接库,可是我在项目代码中找到对引用的地方,没有其余异常。网络
若是不出所料,你应该能发现有一到数个的条目是用红色字体来显示的。
说明这些被工程引用的这些文件,其物理文件已经不处于以前所记录的地方了。
这种状况下,右键点击红色条目,选择 “Reveal in Project Navigator”,
此时大抵能在左侧栏中定位到缺失文件所在的路径,接下来就好办了,找到缺失的文件,挪回它应该待的地方。session
原本看到这两种方法时以为第一种应该就能解决了,由于报错的信息看起来就像是原来的文件引用不到了而已,可是当我按照第一种方法去作时,发现“ Link binary With Libraries” 下没有红色的条目,并且原本就没有AFNetworking这个条目,因此第一种方法不适用。第二种方法也不对,由于咱们的项目不少库是经过pod管理的,AFNetworking也是pod管理的库之一。这时候我就想起多是pod的缘由,在尝试了pod update无果后,发现了第三种解决相似问题的方法。app
方法三:BuildSettings -> Other Linker Flags -> 去掉对应第三方库的引用ide
方法四:关闭Xcode,在控制台打开到工程目录,用pod install 命令从新安装,成功后再打开Xcode编译项目。字体