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 ...
随机推荐
- python在windows下UnicodeDecodeError的解决方法
之前在windows下使用python调用某些模块时都会报错,像这样: C:\Documents and Settings\Administrator>python -m CGIHTTPServ ...
- bzoj2438 杀人游戏 Tarjan强联通
[bzoj2438][中山市选2011]杀人游戏 Description 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手.警察能够对每一个人进行查证,假如查 ...
- 关于python的整形(int)自动转长整形(long)的问题
有时需要访问某个接口,其中传入的整形参数可能比较长就会变成long,这时如果用str()的话‘L’就会被转化到字符串中,导致接口不能识别: 这种情况下应该优先使用json来转译,可以完美保持翻译pyt ...
- c++ 中 define
1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写 if(i<MAXTIME){.........} 编译 ...
- ubuntu 忘记密码,忘记root密码的解决办法
ubuntu的root默认是禁止使用的,在安装的时候也没有要求设置root的密码.要使用,给root设置密码就行了,sudo passwd root .如果只是普通用户密码忘了,用root就可以修改. ...
- linux下解压zip文件
linux下解压zip文件 linux自带的unzip命令可以解压windows下的zip格式的压缩文件. unzip命令 语法:unzip [选项] 压缩文件名.zip 各选项的含义分别为: -x ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---47
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- python的上下文管理
说道上下文管理首先想到的就是这个: class MyResource: def __enter__(self): print("查询开始") return self def __e ...
- layui 自定义表单验证 以及提交表单
订购数量</span> <span style="color: red">*</span>: <input type="text ...
- PHP操作MongoDB(增删改查)
MongoDB的PHP驱动提供了一些核心类来操作MongoDB,总的来说MongoDB命令行中有的功能,它都可以实现,而且参数的格式基本相似.PHP7以前的版本和PHP7之后的版本对MongoDB的操 ...