共计 10 篇文章

iOS开发过程中优雅的调试数据库

背景 在开发的时候,数据库的操作一直是一个很棘手的问题,后来发现Android下面有一个第三方的库还挺好用的,就模仿它搞了个iOS的,可以方便的通过浏览器查看、添加、删除、修改数据库。 历史状况 我们来回想一下调试的过程: 如果在模拟器中调试: 找到模拟器应用中数据库的文件位置 拷回到一个比较方便打开的地方 安装一个数据库操作软件 打开数据库文件 select/insert/upate/delete... 拷会模拟器应用目录中 运行应用,查看结果 效果不理想,重复1-7步 如果是手机设备, ...

五星评论、展示评论星级支持小数

好像第二次写这个星星的评论了,索性就抽取一个算了,免得下次又搞。 这次也考虑到了小数的展示,比如说4.3、2.5这样的评分展示。 主要运用了的CAlayer的contentsRect属性来展示小数部分。 /* A rectangle in normalized image coordinates defining the * subrectangle of the `contents' property that will be drawn ...

【译】在应用的icon上加上编译相关信息

加那些信息 版本号 代码分支名字 最后一次commit的hash值 版本号 我们可以使用PlistBuddy工具直接从项目文件info.plist中取出版本号 version=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}"` (当然了,你可以通过这个工具取出info.plist中的任何值,把CFBundleVersion改为其他的key就行了,key值可以在xcode中查看) 代码分支名字和commit的hash值 这两个值我们可以通过git的命令行git rev-parse来获取 commit=`git ...

iOS10.0.1下面Bugly导致崩溃的问题

前两天提交了一个版本,审核被拒了,说是审核的时候应用崩溃,就奇怪了,提交之前没少做测试啊。还好附件给出了崩溃的日志,看了下是iOS10.0.1版本下审的,这也有点奇怪,iOS10还没大量放开,就开始用它审核了。 不管了,先解决问题,日志如下: Incident Identifier: B6A7C6FE-D926-4193-89F3-AAA69F38F384 CrashReporter Key: 617fbd5d073bb8adaeb2167ca3c15df9260f289c Hardware Model: xxx Process: wesp ...

github项目语言展示

放了个项目在github上面,发现语言展示有问题。看了下,github主要使用Linguist来检测使用的是哪种语言,然后按照使用语言代码数量的多少来确定该项目为哪种语言的项目。 解决起来也方便,使用.gitattributes就可以了: echo "*.* linguist-language=Objective-C" > .gitattributes 然后提交就可以了。 ...

UINavigationController在pushViewController之后做一些操作

经常遇到pushViewController之后需要做一些操作的情况,官方文档没提供接口这么处理,理论上是可以的,那具体的操作方式就是用CATransition把pushViewController包起来,然后在设置一个complete block。 [CATransaction begin]; [[self navigationController] pushViewController:viewController animated:YES]; [CATransaction setCompletionBlock:^{ //do something }]; [CATransaction commit]; 当然也可以使用category添加一个方法来做这个事情: @interface UINavigationController (complete) - (void) ...

Flipboard 在 iOS 上怎样播放 GIF 动画

本文翻译自:http://engineering.flipboard.com/2014/05/animated-gif/ 原作者:Raphael Schaad 译者:@nixzhu =============================== Flipboard 一直谋求的是“烹饪原始Web”并将其转化为如杂志般优雅的东西。我们考虑到许多细节——从文章的排版到相片的布局——以尽可能忠实地展现内容的本质。 而对于 GIF 来说,我们想让它们在我们的应用里自动播放。自动播放是动态 GIF ...

GCD 深入理解:第二部分[转载]

本文翻译自 http://www.raywenderlich.com/63338/grand-central-dispatch-in-depth-part-2 原作者:Derek Selander 译者:Riven、@nixzhu 前半部分由 Riven 翻译,但他由于太忙而搁置,后由 NIX 整理校对并翻译后半部分。 ============================== 欢迎来到GCD深入理解系列教程的第二部分(也是最后一部分)。 在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD 如何工作的知识。 ...

GCD 深入理解:第一部分[转载]

本文翻译自 http://www.raywenderlich.com/60749/grand-central-dispatch-in-depth-part-1 原作者:Derek Selander 译者:@nixzhu ======================================== 虽然 GCD 已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而 GCD 是基于 C 的 API ,它们就像一组尖锐的棱角戳进 Objective-C ...