开发中遇到的坑和部分心得3

1.iOS国际化

iOS国际化传送门

2.AutoLayout关于更新的几个方法的区别:

setNeedsLayout:告知页面需要更新,但是不会立刻开始更新。执行后会立刻调用layoutSubviews。
layoutIfNeeded:告知页面布局立刻更新。所以一般都会和 setNeedsLayout一起使用。如果希望立刻生成新的frame需要调用此方法,利用这点一般布局动画可以在更新布局后直接使用这个方法让动画生效。
layoutSubviews:系统重写布局
setNeedsUpdateConstraints:告知需要更新约束,但是不会立刻开始
updateConstraintsIfNeeded:告知立刻更新约束
updateConstraints:系统更新约束

3.Position and height are ambiguous for XXX 错误

今天在编码的时候碰到了这样一个错误,找了好久都找不到问题所在,试了好多办法,最后把控件的约束全部删除重新添加一遍就可以了。这个应该是Xcode的Bug。

4.开发的时候碰到这样一个需求,需要拖动选择数量,并且在拖动的过程中变换当前被选中的数字的颜色和大小。

于是博主利用UIcollectionView+UICollectionViewFlowLayout实现了下图效果。如果你也需要实现类似效果可以前往我的个人github下载。如果能够帮到你希望能给博主点上星星,谢谢支持_

collectionView拖动选择器.gif

如果你是iOS新人或者是之前没有用过这个控件的开发者,那么博主推荐一篇对该控件介绍相对比较详细的文章.UICollectionView很强大,非常有必要深入学习。

5.在导入使用第三方库的时候发现libsqlite有libsqlite3.dylib和libsqlite3.dylib两个库,他们到底有什么区别呢?

libsqlite3.dylib本身是个链接,在这里它指向libsqlite3.0.dylib。也就是说在这里你添加libsqlite3.dylib和添加libsqlite3.0.dylib其实是添加了同一个文件,没有区别,那为什么要添加libsqlite3.dylib呢?原因在于libsqlite3.dylib总是指向最新的sqlite3动态库,也就是说如果出现了新的动态库(如:libsqlite3.1.dylib)那libsqlite3.dylib将指向这个新的动态库(libsqlite3.1.dylib)而不在是libsqlite3.0.dylib了!

6.does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target.

最近在新建工程想要进行真机调试的时候发现报了这样一个错误,这个是因为在xcode7之后Xcode新增了一个功能就是给在程序打包的时候对程序里面的代码进行“瘦身”处理。bitcode是被编译程序的一种中间形式的代码。包含bitcode配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上。但是这就要求程序里面的所有第三方代码都需要满足支持bitcode。如果你还是想要保留这个第三方那么你可以在Xcode的”Build Settings”->”Enable Bitcode”选项中将其设置为NO。

配置图片.png

7.控制器在跳转的时候有push和modal两种方式,push多层的时候我们能够用

[self.navigationController popToRootViewControllerAnimated:YES];来实现跳转到根控制器,但是你是否考虑过如果是modal的情况下怎么跨级跳转呢?
经过一顿操作博主找到了以下方法:

//.presentingViewController能够拿到跳转到自己的ViewController,所以想跳多少层就跳多少层,只要修改presentingViewController的个数。
//实验发现modal最底层是通过UITabBarController来实现的。- -
UIViewController *vc = self.presentingViewController.presentingViewController.presentingViewController;
[vc dismissViewControllerAnimated:YES completion:nil];
8.给大家分享几个加密分类

百度云盘地址
密码:8pkk

加密分类.png
9.给大家分享一个比较详细的地址plist文件。

百度云盘地址
密码: rqr6

中国省市区plist文件.png

10:使用XIB可以加快开发速度,除了拖控件,还可以在XIB中直接把手势添加到某个控件上面,剩下不少垃圾代码的编写,实在方便.但是,方便中有也有一些坑等着你踩.我习惯用[[[NSBundle mainBundle]loadNibNamed:NSStringFromClass([self class])owner:nil options:nil] lastObject]来加载XIB,所以,我遇到了一个坑,异常信息为:

reason: 'invalid nib registered for identifier (WMNearByFellowVCCellID) - nib must contain exactly one top level object which must be a UITableViewCell instance

再看下面的截图,资深人士应该知道原因了吧?


Paste_Image.png

其实,当你在XIB中添加手势(无论添加给谁),它就是一个文件的了,所以,你加载文件,就有可能加载到了手势,而不是cell,所以就会出现上面的异常.
解决方式:使用[[[NSBundle mainBundle]loadNibNamed:NSStringFromClass([self class])owner:nil options:nil] firstObject]加载XIB,并且不能通过注册的方式来做cell的循环利用.

最近发现一个问题,我在xcode控制台打印输出的时候,并不能直接打印属性的值了,这让我很惆怅,报错信息如下:

error: instance method 'left' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'left' also declared here
error: instance method 'top' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'top' also declared here
error: instance method 'right' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'right' also declared here
error: instance method 'bottom' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'bottom' also declared here
error: instance method 'width' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'width' also declared here
error: instance method 'height' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'height' also declared here
error: instance method 'centerX' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'centerX' also declared here
error: instance method 'centerY' has incompatible result types in different translation units ('CGFloat' (aka 'double') vs. 'MASViewAttribute *')
instance method 'centerY' also declared here
warning: property access result unused - getters should not be used for side effects

导致这个问题的原因我在网上找了好久,网上大多说是分类里面有重复的方法导致了这个警告,但是我发现旧版本就有分类方法名重名的情况但是却并没有报出这种错误,经过对SVN版本号的对比我最终定位到了问题起源的版本号,仔细对比代码之后发现改过DEBUG_INFORMATION_FORMAT = dwarf;为DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
。这就是问题的根本所在,只需要恢复配置为DEBUG_INFORMATION_FORMAT = dwarf;即可。
下面是对于这两个配置的官方说明:

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

推荐阅读更多精彩内容