[图片上传中。。。(1)]######1、switch语句case中新建变量报语法错误?
将case x: 中的代码块使用 { } 括起来就行。
2、真机调试的时候报错
- 缺少对应系统版本的镜像文件
- 拒绝连接,手机没有信任电脑
3、引入百度地图的时候报语法错误
修改文件后缀名为.mm
4、 EXC_BAD_ACCESS 这个错误
其主要原因是因为程序访问了错误的内存地址,根据其后面的判断,是空地址还是一个已经释放的对象地址,具体情况具体分析
SIGSEGV 访问了没有开辟的内存或是已经释放的内存
SIGPIPE对一个一端已经关闭的socket调用两次write,第二次默认结束进程
SIGABRT程序终止,断言或操作系统内部抛出
4、 product archive 无效,不可选
不要选择模拟器,选择Generic iOS Device 或 真机
5、项目选择不了模拟器
目标编译版本太高 在�PROJEC -> General -> DeploymentTarget中修改
6、执行PresentViewController比正常感觉慢
因为当前线程可以休眠了,所以执行下面语句唤醒主线程
[self performSelectorOnMainThread:@selector(dontSleep) withObject:nil waitUntilDone:NO];//空操作,为了唤醒主线程
7、添加布局约束后不能准确获取view的frame
在布局所在的superview调用layoutIfNeeded,然后获取约束view的frame
8、tabview和scrollview的滑动手势冲突
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
CGPoint translation = [(UIPanGestureRecognizer *)gestureRecognizer translationInView:self];
BOOL res = fabs(translation.x) > fabs(translation.y);
return res;//判断当下的一瞬间是上下滑动还是左右滑动
}
return YES;
}
9、两个视图相应同一个手势
默认情况下,两个gesture recognizers不会同时识别它们的手势,但是你可以实现UIGestureRecognizerDelegate协议中的gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:方法对其进行控制。这个方法在这两个gesture recognizers中的任意一个将block另一个的触摸事件时调用,如果返回YES,则两个gesture recognizers可同时识别,如果返回NO,则并不保证两个gesture recognizers必不能同时识别,因为另外一个gesture recognizer的此方法可能返回YES。也就是说两个gesture recognizers的delegate方法只要任意一个返回YES,则这两个就可以同时识别;只有两个都返回NO的时候,才是互斥的。默认情况下是返回NO。
10、iOS上下黑边
项目中还留着Launch Screen ,删掉Launch Screen.xib
image.png
将这个换成Launch Images Source 选择Use Asset Catalog
11、有些程序编译完成后不运行 The file “XMPPDemoA” couldn’t be opened because you don’t have permission to view it.
cmd + shift + k,清除一下缓存就好了
12、让一个view的部分区域相应点击事件
重写
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
13、让一个手势同时响应上层View事件,也同时响应下层view事件
tap.cancelsTouchesInView = NO;
14、ButtonTitle水平对齐
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
15、Button点击事件不响应
- 可能一:没有打开userInteractionEnabled
- 可能二: 绑定点击事件的对象已经被释放掉了
16、发送一次通知响应两次
- 因为监听对象注册了两次,而没有移除,所以同一个地方会相应两次
17、ScrollView设置了contentoffset之后经过显示和消失步骤后,contentoffset又变成了0,0
是因为contentSize始终为0,当所以在重新显示的时候又变成了0,
18、ScrollView的contentoffset莫名变成 0 ,-20
将Controller的 automaticallyAdjustsScrollViewInsets = false
19、给View设置阴影不出现
- 不能设置 layer.masksToBounds = YES 可以设置 clipsToBounds = YES
- 要设置 border
20、The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 1.)
edit scheme里面有个空的环境变量
21、preferredStatusbarStyle 无效
除了已经理解的要始终保持是当前ViewController之外还有infoplist里面的View controller-based status bar appearance 是yes,百度导航可能要求是no
这个时候用[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]
有效
22、Xcode8 + IOS 10 打印不全
ifndef OPTIMIZE //针对ios 10 + Xcode 8打印不全
define pNSLog(...) printf("\n%s[Line %d] %s\n",PRETTY_FUNCTION, LINE,[[NSString stringWithFormat:VA_ARGS]UTF8String]);
endif
######23、push新界面的时候卡住,需要点home键在回来就显示
> 因为设置了手势的返回
######24、数组遍历 For in 和 for (int i;i < count; i++)的区别
> 一般情况下是没有什么问题的,但是如果for in 结束判断是判断遍历到的某一个元素是否是等于最后一位则有问题
如果数组中有两个相同的元素,而其中一个刚好是最后一位则会出现问题,遍历会在遍历到第一个相同的元素的位置时跳出遍历(这是个坑)
######25、uilabel设置了numberOfLines = 0 还是不换行
> 设置adjustFontSizeWithWidth = YES
######26、duplicate symbols for architecture
> 有可能是重复导入头文件导致的
######27、[_titleBtns makeObjectsPerformSelector:@selector(setSelected:) withObject:@(NO)];无效
> 这个只在模拟器中有用,让数组中的所有对象都执行指定方法
网友评论