iOS - 错误信息(持续更新)

自己开发过程中遇到过很多错误,但一直没有整理记录,今天开始遇到问题就整理记录下,方便以后使用。

一. cocoapods 添加第三方库,第三方库支持版本问题

ld: embedded dylibs/frameworks are only supported on iOS 8.0
 and later (@rpath/AFNetworking.framework/AFNetworking) for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

我出现上面的情况注意是因为,用了 Cocoapods 安装的第三方框架.

原因:

主要是因为XXX的framework支持的最低开发环境为8.0,而使用该framework的工程支持版本为8.0以下

解决方法:

首先选中 pods 如图:


然后修改支持的最低版本: 如图:


二. 证书和id 不对应. 替换本地描述文件方法.

CodeSign error: code signing is required for product type 
'Application' in SDK 'iOS 9.3'
原因:

签名证书不对

解决方法:
  1. >Build Settings -> Code Signing -> Code Signing Identity -> Debug -> Any ios SDK 将选项改为:iPhone Developer
  • 如果上面还不对,就自己去网站上 看看对应的ID和证书,描述文件是否都对.(我一般就直接去对id证书和描述文件.)
注意:

有时候你即使重新下载描述文件之后也还是错的,为什么呢,因为本地的描述文件还没有替换掉。这种情况经常出现在,新添加一个设备之后,要更新网上和本地的描述文件之后才能真机测试,这个时候老是提示描述文件找不到设备,这个时候就要删掉原先的描述文件,替换成刚在网上下载下来的.具体步骤如下:

  1. 找到你要删掉的描述文件,选中 点击下面的 other 按钮 如图:

    第一步

  2. 在弹出的框中,记住这一串字符.


    第二步
  3. 打开 Finder 按快捷键 command+shift+G ,在弹出框中输入如下地址: /Users/youMacName/Library/MobileDevice/Provisioning Profiles

    第三步

  4. 找到你刚才记住的那串字符,并删除


    第四步
  5. 再次打开Xcode 快捷键 command+shift+K clean 一下项目,双击你重新下的描述文件,运行,如果有别的错,应该就是下面记录的第四个错误 4,看看如何搞就行 ...
    <br >


三. 真机测试 id 不对应问题

The provisioning profile specified in your build settings
 (“WeiDeveloper”) has an AppID of “xxx.xxx.xxx” which does not
 match your bundle identifier “zzz.zzz.zzz”.
原因:

修改了证书和描述文件,对应的id没有替换,或者没有替换全.

解决方法:

全局搜索 zzz.zzz.zzz 替换成 xxx.xxx.xxx


四. 更新 证书问题

Your build settings specify a provisioning profile with the UUID 
“53cfe973-7bf2-414e-9942-f872469bb563”, 
however, no such provisioning profile was found.
原因:

更换描述文件,出现的错误,一般项目更换描述文件之后就会报这个错

解决方法:
  1. 关闭项目,找到项目文件XXXX.xcodeproj,在文件上点击右键,选择显示包内容(Show Package Contents)。会新打开一个Finder。
  2. 在新打开的Finder中找到project.pbxproj,并且打开,找到你所有包含报错的UUID‘XXX’的行(一般有多行),删除。
  3. 保存,重新启动项目,再编译,就OK了。(一定要重新启程xcode)

五. tableview 嵌套 collectionview 时 item size 问题

CollectionView[62853:1528710] the behavior of the 
UICollectionViewFlowLayout is not defined because:**
CollectionView[62853:1528710] the item height must be less 
than the height of the UICollectionView minus the section insets 
top and bottom values, minus the content insets top and bottom 
values.**
CollectionView[62853:1528710] The relevant 
UICollectionViewFlowLayout instance is 
原因:

UICollectionViewFlowLayoutitemSize的宽或者高设置的有问题!它的size必须在父容器的范围之内!也就是说相等也不行!我遇到这个警告主要是在UITableView中嵌套了UICollectionView,在tableview协议方法中heightForRowAtIndexPath,和collectionview 协议方法中sizeForItemAtIndexPath他俩设置的高度一样.

解决方法:

sizeForItemAtIndexPath中调小高度,警告就没有了.


六. 数组插入数据为nil

***** -[__NSArrayM insertObject:atIndex:]: object cannot be nil**

原因:

看意思就明白了,插入的元素为nil了

解决方法:

这个自己去找 ...... 😳


七. xib 中出现多余连线

 this class is not key value coding-compliant for the key new_logView.'

原因:

自己在xib中设置IBAction和IBOutlet时有多余的连线

解决方法:

找到错误中提到的view,删除多余的连线.


八: UIButton 加定时器 字体闪烁

iOS NSTimer定时刷新按钮的文字,避免按钮闪烁的办法
错误效果:

错误图片

由于使用xib拖得视图,没有更换btn的类型.

解决方法:

UIButton的类型由system改为custom就OK


九: collectionview 的问题 下面俩都是 插入/删除/的时候出现的问题

Invalid update: invalid number of items in section 0.  The number 
of items contained in an existing section after the update (11) 
must be equal to the number of items contained in that section 
before the update (7), plus or minus the number of items inserted 
or deleted from that section (1 inserted, 0 deleted) and plus or 
minus the number of items moved into or out of that section (0 moved in, 0 moved out).

原因:

  1. 这个问题出现的时候头疼了一会,因为我看代码怎么看怎么对,也是没谁了.
    后来才发现还是自己代码的问题,最重要的一句话The number of items contained in an existing section after the update (11) must be equal to the number of items contained in that section before the update (7)大概意思就是,更新前的数据源个数和更新后的不一样了,更新前7个,更新后11个,发现代码写的有问题,我把删除item的代码,写到else外面去了,先插入后删除 ~ ~ ~ 本来应该是插入就完事了,没想又走了一个删除的方法,先给自己一巴掌 ~~~😢
  2. 还要说一种情况.当你向一个空数组里面(个数为0的数组),调用inster方法,插入数据的时候,该数组个数不能为0 ~ 如果为0也会出现这个种情况~

解决方法:

  1. 把删除的方法放到else里面就没事了 ~~~

  2. 解决方法(当要插入的数组个数为0时,直接调用刷新方法) :

             if (self.youList.count == 0 ) //要插入数据的数组
             {
                 [self.cusCollectionView reloadData];
             }else
             {
                 [self.cusCollectionView performBatchUpdates:^{
                     [self.cusCollectionView insertItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:CUSTOM_SERVICE.selectedServiceId.count-1 inSection:0]]];
                 } completion:nil];
             }
    

当然出现这个问题的情况肯定是不一样的,认真阅读下错误信息,就可以.一般都是数据源在搞鬼~

<br >


十:

**reason: 'attempt to insert item 10 into section 0, but there are 
only 10 items in section 0 after the update'**

原因:

我出现上面的错误,是在使用collectionview过程中,向第0个section中,插入数据[self.cusCollectionView insertItemsAtIndexPaths:[NSArray arrayWithObject:indexPaths]];插入第10个元素,但是第0个section元素最多10个,最大row值为9,所有奔溃.

解决方法:

后来发现是在插入前没有及时更新源数据.更新源数据之后问题就没有了.


十一: 被除数为0的错误提示

exc_arithmetic xcode (code = exc_i386_div,subcode = 0x0)

我是截图~

原因:

这种情况一般都是 被除数为0 . 有的时候看到这种错误,是不是很头疼?不知道该怎么办呢 ~ (还是修为不够,一直在路上~ ~ ~ )

解决方法:

找到报错的那行,看看被除数的数值.修改一下 ~


十二: 字符为nil

[NSNull componentsSeparatedByString:]: unrecognized selector sent to instance

原因:

返回的字符为nil或 "<null>" ,你调用字符转数组的方法解析不了,所有报错.

解决方法:

加好判断,再处理~ 一般

if(![str isKindOfClass:[NSNull class] ] && str != nil)


十二:

App Transport Security has blocked a cleartext HTTP (http://) 
resource load since it is insecure. Temporary exceptions can be 
configured via your app's Info.plist file.

十三:

**reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'**

原因:

应该是 初始化字典的时候value值为nil了,大部分都是@{key:value,key:value}这种方式出现的错误.

解决方法:

如果你还想用@{key:value,key:value}这种方式最好先判断value是否为nil,或者换其他的初始化方法,其它的一般value数据为nil的时候,不会添加到字典,取值的时候,尽量不要用[ ]这种方式去取值,尽量使用objectForKey即使取出来的值为nil,也不会奔溃,只是一个nil对象.


十四: cell 为nil

** 'UITableView (<ITTPullTableView: 0x7fc6620f3400; baseClass = 
UITableView; frame = (0 64; 375 554); gestureRecognizers = <NSArray: 
0x7fc663e29d30>; layer = <CALayer: 0x7fc663e291d0>; contentOffset: 
{0, 0}; contentSize: {375, 3868.5074999988824}>) failed to obtain a cell 
from its dataSource (<DCVoiceViewController: 0x7fc66302f600>)'**

原因:

出现这个错误是加了一个新的cell之后报的错误,不加的时候是没有错的,感觉是自己代码写的不规范.出现的原因是cellnil,还去调用cell中的属性并赋值

解决方法:

仔细查看代码,加载cell之前要判断好cell是否为nil,如果不想判断的话,建议实例化tableview的时候使用如下方法加载 cell这样就不用再去判断cell是否为nil:

- (void)registerNib:(nullable UINib *)nib forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(5_0);
- (void)registerClass:(nullable Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);

- (void)registerNib:(nullable UINib *)nib forHeaderFooterViewReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);
- (void)registerClass:(nullable Class)aClass forHeaderFooterViewReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);

十五 缺少库文件

ld: library not found for -lcrypto

原因:

一般 lcrypto-lssl 都是没有找到 libssl.so,或第三方中的libssl.a文件

解决方法:

添加上库就可以了.

十六 编译报错: ld: symbol(s) not found for architecture x86_64

原因:

  1. 缺少文件的引用,上图就是缺少文件的引用"_OBJC_CLASS_$_SkyServiceModel", referenced from:这句话可以看出.
  2. 还用一种可能是缺少文件,同上一样 "_OBJC_CLASS_$_SkyServiceModel", referenced from:可以看出.
    具体是缺少哪一个就要自己在项目,查看并添加了 ~

解决方法:

自己去查看上文中提到的文件,是缺少引用还是文件.然后去修改.我这里是SkyServiceModel 是写到一个manager中,在.m中没有 @implementation SkyServiceModel (啪,谁打的我好疼啊~)编译的时候没有通过才报的错误.


十七 同时对同一个数组进行了操作: Collection <__NSCFArray:0x7fb212429b10> was mutated while being enumerated.

原因:

举例来说:

//错误用法 (for arrayTemp 同时在里面对 它进行 删除操作)
NSMutableArray * arrayTemp = xxx;   
    for (NSDictionary * dic in arrayTemp) {        
        if (condition){            
            [arrayTemp removeObject:dic];
        }       
    }

解决方法:

    NSMutableArray * arrayTemp = xxx; 
    NSArray * array = [NSArray arrayWithArray: arrayTemp];  
    for (NSDictionary * dic in array) {        
        if (condition){            
            [arrayTemp removeObject:dic];
        }       
    }

十八 数据库语言错误:

DB Error: 1 "near "": syntax error"*
DB Error: 1 "near "": syntax error"*

原因:

出现这种结果的话,主要是sql 语句识别出错,或者是出现乱码
可以打印出具体的sql语句来查找原因。

栗子:

正确的语句:
insert into TEST (name, userId) values(@"中国", @"123")
错误语句:
insert into TEST (name, userId) values(@"中国", @"*&^#$")

解决方法:

查看sql中是否有乱码或内容格式是否有问题.


十九 Reason: image not found

原因:

出现这种情况一般都是第三方库找不到.
有人说把对应的 framework 改为 optional ,就可以运行。但这是治标不治本,代码运行到对应的framework 引用的地方,还是会崩溃。

解决方法:

<br >
<br >
<br >

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,107评论 29 470
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,607评论 1 9
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,340评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,490评论 18 139
  • 上阙是泉,从岩的裂隙,石的漏斗到幽然的暗河 一点一滴地聚集,一字一词地斟酌 洒进一些轻衣透的薄汗,揉进几朵绿肥红瘦...
    张权伟阅读 191评论 0 4