IOS知识点收集
17 duplicate symbols for architecture armv7s
用cocoapods 的时候出现,这种错误一般是由重复引用库文件引起。
原因:自己尝试添加Reachability的时候,用import ""导入, 发现没又Reachability.h文件,就到link binary with libs里添加了Reachability静态库。
使用cocoapod 文件都是以import <> 方式导入,删掉project里添加的,无需添加,直接引用即可。
16 cocoapods error: incompatible character encodings: UTF-8 and ASCII-8BIT. Updating CocoaPods might fix the issue.
文本文件中的单引号自动变成了中文的单引号,理所当然编码会出现问题。
15 删除添加的代码片段
xcode 中添加了代码片段,要删除的步骤。
1.选中代码片段。 2. 点击键盘delete 键。
14.mutating method sent to immutable object'
从字面上理解:可变的消息发给了不可变的对象。比如NSDictionary类型的对象调用setValue方法.应该把NSDictionary 改成NSMutableDictionary类型
13。'NSInvalidArgumentException', reason: '+[GMSCameraPosition
cameraWithLatitude:longitude:zoom:]: unrecognized selector sent to class
在build setting 的Other Linker Flags中设置为-ObjC
12.The operation couldn’t be completed. (com.google.HTTPStatus error 400.)
在谷歌map api 没设置好。步骤:在developer console中心,
1:将 Google Maps SDK for iOS 的功能打开,
2.申请与你ios项目对应boundle ID 的App Key。
一般app key在申请过程有几个小时才能生效。确定生效后才能调用地图。
11.udp 锁屏 导致出新中断信号
今天终于确定了,原来ios在锁屏之后,重新解锁,这个过程会导致socket失效。 之前 的表现就是锁屏,解锁之后,程序直接crash。(其实是解锁之后,发送第一个包,在sendto之后会导致crash)。
目前的解决办法是,重新创建了一个socket,close了之前的。
这好像是因为ios的锁屏和按home键,最终的状态时不一样的, home键会导致程序进入后台,也就是background状态。
10. self.mapview = [BMKMapView alloc]init]; 报exc_bad_access 错误。
通常这个是因为内存释放导致,但是在百度ios7上出现这个错误。原因是mapapi.bundle 不存在,或者不是最新版本,尝试把mapapi.bundle拖到百度地图sdk中。运行。
9. iOS7 xcode5 百度地图Api出现-[__NSCFString stringFromMD5]: unrecognized selector sent to
other linker flags 添加 -all_load参数。
Project ->build settings ->linking->Other Linker flags
8.ios 7兼容
http://diwu.me/2013/09/23/ios7jie-mian-guo-du/
7. UITapGestureRecognizer手势和tableview 触摸选择事件不兼容解决办法。
原因:
若view 中加了UITapGestureRecognizer手势和tableview ,UITapGestureRecognizer手势调用后,就不会继续往下传递(被拦截),这导致了tableview的点击事件失效。
解决:
1.手势设置委托方法。
UITapGestureRecognizer *tap =[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(btnClicked:)];
tap.delegate =self;
tap.numberOfTapsRequired =1;
[self.viewaddGestureRecognizer:tap];
2.在回调方法中进行判断,若触摸的是tableviewcell的contentview,着不响应。使得事件往下传递。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
// 输出点击的view的类名
NSLog(@"%@", NSStringFromClass([touch.viewclass]));
// 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
if ([NSStringFromClass([touch.viewclass]) isEqualToString:@"UITableViewCellContentView"]) {
return NO;
}
return YES;
}
6"ld: library not found for -l...." 问题的解决
现象:
在编译工程时,有时会遇到类似“ld: library not found for -l....”的错误提示。
原因:
通常这是由于工程在编译时找不到需要的链接库而导致的。
解决方法:
一般可以通过如下方法解决,在工程的Target中选中要执行编译的某个target,然后“get info”,打开Build设置页面,在“Library Search Path”中添加缺失链接库的所在文件夹的路径即可。
5.去掉xcode编译warning:ld: warning: directory not found for option '-L
- 选择工程, 编译的 (targets)
- 选择 Build Settings 菜单
- 查找 Library Search Paths 和 Framework Search Paths, 删掉编译报warning的路径即OK
4.字典转换错误:
-[NSDecimalNumber isEqualToString:]:
用sbjson解析字典时候出现如上错误。原因是字典中的值不是字符串“1”,而是1的数字表示。
要直接得到字符串的形式,在解析后给字典加上描述,如:
[[jsonObjects valueForKey:@"id"] description];
3.图片自适应宽高。
imageView1.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imageView1];
2.控件旋转
宏定义 旋转角度 :
#define degreesToRadians(x) (M_PI*(x)/180.0)
CGAffineTransform rotation = CGAffineTransformMakeRotation(degreesToRadians(180));//旋转180度
[xxx setTransform:rotation];
顺便记录一些常量,以后用的着!
#define M_E 2.71828182845904523536028747135266250 e
#define M_LOG2E 1.44269504088896340735992468100189214 log 2e
#define M_LOG10E 0.434294481903251827651128918916605082 log 10e
#define M_LN2 0.693147180559945309417232121458176568 log e2
#define M_LN10 2.30258509299404568401799145468436421 log e10
#define M_PI 3.14159265358979323846264338327950288 pi
#define M_PI_2 1.57079632679489661923132169163975144 pi/2
#define M_PI_4 0.785398163397448309615660845819875721 pi/4
#define M_1_PI 0.318309886183790671537767526745028724 1/pi
#define M_2_PI 0.636619772367581343075535053490057448 2/pi
#define M_2_SQRTPI 1.12837916709551257389615890312154517 2/sqrt(pi)
#define M_SQRT2 1.41421356237309504880168872420969808 sqrt(2)
#define M_SQRT1_2 0.707106781186547524400844362104849039 1/sqrt(2)
1.ios 沙盒文件
描述:在对文件进行写入时候出现失败的情况。排查错误,.路径相同,仍然失败,查找到此原因。
沙盒里面的,文件保存的位置分为四个:
1,工程沙盒里(就是程序user Document文件夹下,以读取文件,写入文件方式)
2,工程自身里(就是在工程里手动创建一个如.plist文件,把固定的内容写入,这个需要人工手动写入,即xxx.app文件)
3,工程沙盒里(保存到user Document下,不过不需要读写文件,用系统的 NSUserDefaults 可以快速保存添加读取删除基本数据类型,类似于android里的Sharedpreferences )
4.tmp文件
要想真正的在app中对程序进行读写,只能把文件放在document,tmp里面。
IOS知识点收集的更多相关文章
- 漫谈iOS Crash收集框架
漫谈iOS Crash收集框架 Crash日志收集 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,C ...
- IOS试题收集1
IOS试题收集1 1.Objective C中有多继承吗?没有的话用什么代替? Protocol 2.Objective C中有私有方法吗?私有变量呢? OC类里面只有静态方法和实例方法这两种,@pr ...
- IOS学习笔记48--一些常见的IOS知识点+面试题
IOS学习笔记48--一些常见的IOS知识点+面试题 1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...
- js基础知识点收集
js基础知识点收集 js常用基本类型 function show(x) { console.log(typeof(x)); // undefined console.log(typeof(10)); ...
- 李洪强iOS开发之iOS社区收集
李洪强iOS开发之iOS社区收集 项目 简述 github 全球最大的代码仓库,无论是iOS开发还是Android开发没有人不知道这个网站,它也是一个社区,你可以去follow(关注)某些人或公司. ...
- 李洪强iOS开发之iOS工具收集
李洪强iOS开发之iOS工具收集 项目 简述 日期 我是怎么慢慢变懒的 : Jenkins + 蒲公英 使用Jenkins + 蒲公英使得项目打包给测试人员自动化,大大节省了劳动力 2015.04.1 ...
- 李洪强iOS开发之iOS学习方法收集
李洪强iOS开发之iOS学习方法收集 在这里收集一些iOS学习方法,会不断更新 项目 简述 日期 一年多iOS开发总结 作者总结了自己一年多的iOS学习经验,对于iOS初学者来说很多地方是可以借鉴的 ...
- 李洪强IOS开发之iOS好项目收集
李洪强IOS开发之iOS好项目收集 在这里收集一些最近出现的比较实用好玩的框架或者项目,会不断更新 项目 简述 日期 SCTableViewCell 类似与QQ侧滑删除Cell的Demo 201501 ...
- ffmpeg 常用知识点收集
ffmpeg 常用知识点收集 一.基础简介 FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影.转换.流功能,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及l ...
随机推荐
- CSA Round 84 Mahattan Center
题目 题目大意 给定平面上的 $n$ 个点和常数 $k$,求 $x$ 轴上的点 $p$ 到 $n$ 个点中距其最近的 $k$ 个点的距离之和的最小值.两点之间的距离定义为曼哈顿距离. 数据范围 $1\ ...
- [luogu1357] 花园 [dp+矩阵快速幂]
题面: 传送门 思路: 把P形花圃记录为0,C形记录为1,那么一段花圃就可以状态压缩成一个整数 那么,我们可以有这样的状压dp: dp[i][S]表示前i个花圃,最后m个的状态为S的情况 如果这是一条 ...
- 蔬菜(vegetable)
蔬菜(vegetable) 题目描述 题目背景:您使用脚本刷出了上题游戏 998244353 关的最高分 (最优解),心满意足的准备点继续学习,忽然一条弹窗弹了出来:你想明白活着的意义吗?你想真正的. ...
- Codeforces Round #304 (Div. 2) D 思维/数学/质因子/打表/前缀和/记忆化
D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...
- IOS YYKit 源码解析
https://blog.csdn.net/weixin_33874713/article/details/87034047
- 通过Xode上传代码到GIthub---步骤
---恢复内容开始--- 一:打开终端,git命令进行全局配置 由于本人已经配置完成,so,直接查看配置信息 然后在本地创建一个文件夹, 然后在gitHub上创建一个代码库 在终端clone到本地创建 ...
- 多核cpu的特殊中断
cpu可以向其他cpu发送中断,也可以向单独某一个cpu发送中断 每个 cpu 都有一个时钟中断源
- EasySlider-最简洁的JQuery滚动插件 可控制滚动
原文发布时间为:2010-05-05 -- 来源于本人的百度文章 [由搬家工具导入] Easy Silder是由Alen Grakalic开发的基于JQuery的滚动插件,它支持以下功能: 1.自动滚 ...
- javascript 实现 接口编程
// Constructor. var Interface = function (name, methods) { if (arguments.length != 2) { throw new Er ...
- NIO、AIO学习历程
今天我们以一个常见的面试题作为开始:"谈谈你对IO与NIO的理解".要回答这个问题,我们首先我要了解几个概念: NIO 同步+非阻塞 IO(BIO) 同步+阻塞 AIO 异步+非阻 ...