iOS
文章平均质量分 74
lihei12345
这个作者很懒,什么都没留下…
展开
-
Objective-C小技巧 (Builder / Command / Protected)
Builder模式当我们在设计一个类时,我们期望类属性的值由外部调用者传入,但是我们希望这个值仅在初始化设置,在初始化之后外部调用者修改这个值会导致状态混乱。或者干脆一个类具备大量外部可access的属性,调用者在使用这个类时会感觉比较茫然,需要一定的学习成本才能明白这个类设计的意图。我们可以通过Objective-C的 init 方法解决,尤其是 designated initializer...原创 2018-05-24 21:13:55 · 1333 阅读 · 0 评论 -
自定义viewcontroller总结
一. UIViewControllerUIViewController的View是lazy loading的,只有访问其view属性时,view才会加载(通过xib载入或者loadView方法中代码实现),可以通过UIViewController的isViewLoaded来判断其View是否已经加载。当UIViewController的view将要被加入到view hier原创 2015-05-16 07:56:01 · 4518 阅读 · 0 评论 -
ReactiveCocoa & MVVM 学习总结二
二. MVVM1. 什么是MVVMFrom: https://github.com/ReactiveCocoa/ReactiveViewModel#model-view-viewmodelMVVM是指 Model-View-ViewModel的简称,与MVC的一个主要区别是 view 拥有view model。这个与MVC不一样,MVC中应该是controller拥有view。原创 2015-06-17 20:27:26 · 5040 阅读 · 0 评论 -
ReactiveCocoa & MVVM 学习总结一
主要是为了总结学习RAC的过程中,遇到的一些困惑点,一些阅读的参考资料,文笔也不是很好。建议大家学习RAC参考文章:https://github.com/ReactiveCocoa/ReactiveCocoa/tree/master/Documentation以及花瓣工程师的一篇很棒的文章: http://limboy.me/ios/2014/06/06/deep-into-reactivec原创 2015-06-16 23:06:14 · 7709 阅读 · 1 评论 -
基于Cocoapods单工程多应用架构总结
=================================================参考资料:原创 2014-09-17 17:50:03 · 4267 阅读 · 1 评论 -
id、NSObject *、id<NSObject>、instancetype的区别
1. id 与 NSObject *(1) id 是 Objective-C 对象,但是并不一定是NSObject对象,并非所有的Foundation/Cocoa对象都是继承于NSObject对象的,比如NSProxy。同时,id与NSObject对象之间有很多的共同方法,比如retain与release等方法。更一步来说:所有的对象本质来说都是 id 类型的。(2) 对于id来说,你可以原创 2015-04-27 21:55:35 · 5961 阅读 · 1 评论 -
Mac iterm2 配置
1. 基本配置: term 2 + zsh + oh my zshhttp://xingrz.me/2013/2013-06-19/terminal-zhuangbility.htmlhttp://www.dreamxu.com/mac-terminal/http://danielfree.net/archives/1117https://github.com/tomislav/osx-t原创 2015-04-27 21:57:12 · 1341 阅读 · 0 评论 -
GCDMulticastDelegate源代码阅读
最早注意到这个类是之前搞XMPP的时候,使用了一个开源库:https://github.com/robbiehanson/XMPPFramework,在研究其中的插件机制的时候,发现其中的核心就是这个类,是一个一对多的代理机制。之前读过一次源代码,但是一直比较忙,没有来得及总结。这两天抽出来时间读源代码,细看了一下这个类的实现,既简单又巧妙,写的非常好。这个类实现的技术基础是OC的消息原创 2015-04-13 15:40:24 · 2395 阅读 · 0 评论 -
Auto Layout 常见问题汇总
1. 多个view等间距分布这个问题较为常见,也比较好解决,根据官方文档中的spacer view的概念,主要是利用已经hidden的view来实现,设置这些spacer view的宽或高属性相等即可巧妙实现。spacer view结合auto layout使用,灵活使用可以解决大部分的UI问题。参考资料:http://stackoverflow.com/questions/130原创 2015-04-07 19:13:28 · 3250 阅读 · 0 评论 -
Masonry源代码分析
使用Autolayout也有一段时间了,auto layout的基本概念非常简单,都是围绕约束进行的,API更是只有两个,但是使用起来感觉很麻烦。最近看到我们这边其他部门的应用使用了很多Masonry来处理UI,看起来非常清爽,链式调用看起来非常容易阅读,使用起来非常方便。但是这种之前ASI给的教训非常深刻,尤其这种大规模基础性地使用第三方开源库,需要确保可控才敢用,至少可以读懂代码并且能够局部优原创 2015-04-13 18:42:11 · 10381 阅读 · 2 评论 -
Auto Layout和Size Class方面一些非常棒的文章和教程
iOS8 和 iPhone 6 适配资料:原文:http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/,译文:http://www.devtalking.com/articles/adaptive-layout-for-iphone6-1/,http://www.cocoachina.com/ios/20原创 2015-04-07 19:18:28 · 1212 阅读 · 0 评论 -
设置UITextView的内间距inset为0;UIScrollview的pagingEnabled为YES的时候设置不同Page之间的间距
1. 设置UITextView的内间距inset为0http://stackoverflow.com/questions/746670/how-to-lose-margin-padding-in-uitextview设置方法iOS6以及一下通过设置: UIScrollView的contentInset来设置;对于iOS7以及以后的iOS系统通过:UIScrollView的self.text原创 2015-03-12 16:50:47 · 3035 阅读 · 0 评论 -
GCD中一些比较有趣的点
这两天空闲时间较多,把自己前一段积累的各种学习资料进行总结复习,首次学习GCD是两年多之前,官方的guide看了,也经常使用,但是里面还是有些比较有趣的点,经常会遗忘,记录一下备忘;=======================https://github.com/nixzhu/dev-blog/blob/master/2014-04-19-grand-central-dispatch原创 2015-02-28 17:54:06 · 907 阅读 · 0 评论 -
breakpoints && lldb && chisel 的使用
BreakpointsBreakPoint分类breakpoint也是有分类的,我这里的文章内大致按使用的方式分为了 Normal Breakpoint,Exception Breakpoint,OpenGL ES Error breakpoint,Symbolic Breakpoint,Test Failure Breakpoint,WatchPoints。可以按具体的情原创 2015-07-27 19:47:06 · 6143 阅读 · 1 评论 -
Voice Over 使用总结
1. 如果初始化UIBarButtonItem的时候,customView为UIButton的话,为UIBarButtonItem或UIButton设置accessibilityLabel均可;如果加了一层UIView做为UIButton的containerView,然后把这个containerView设置为UIBarButtonItem的customView,这个时候则只能对UIButton设置原创 2015-07-22 11:15:08 · 2980 阅读 · 0 评论 -
JavaScriptCore学习之JSPatch源码阅读
方法调用require实现JS接口消息传递对象持有转换类型转换示例方法替换实现基础原理JPForwardInvocationOC调用JSPatch的基本原理:JS传递字符串给OC,OC通过Runtime接口调用和替换OC方法。方法调用1. require实现 var _require = function(clsName) { if (!global[clsName])原创 2016-04-04 23:48:15 · 3944 阅读 · 0 评论 -
JavaScriptCore学习之JavaScriptCore
JavaScriptCore框架的类JavaScriptCore框架对外暴露的类实际上非常少,这样带来的好处是API非常简单。如下图所示,只有5个类,分别是JSContext,JSValue,JSManagedValue,JSVirtualMachine,JSExport,其中最核心的是JSContext和JSValue,我们平时打交道的基本就是这两个类了。原创 2016-04-05 00:03:10 · 6123 阅读 · 1 评论 -
Objective-C新特性
Swift的确是一个很强大的语言,各种特性使用起来非常简洁强大,但是目前来说,感觉成熟度还是不够,所以商业项目中使用OC来说是比较稳健的行为。看来一下WWDC 2015的 Swift and Objective-C Interoperability session,视频前半部分主要是讲解swift和OC之间的交互的规则,后面则讲到OC的一部分新的语言特性,这几个特性,Apple的开发人员在WWDC原创 2015-10-24 23:55:04 · 2245 阅读 · 0 评论 -
Mantle源代码阅读笔记 一
最近的项目需求需要持久化一些对象,由于只是一些比较简单的数据,使用NSUserDefaults进行存储即可。之前实现过比较简单自动archive和unarchive的操作。原理很简单,遍历NSObject的property list,然后通过valueForKey:和setValue:forKey:方法进行操作。这种实现不能满足我的新需求,我的新需求需要做到将property为其他类型的对象也做到原创 2015-12-12 19:46:42 · 3073 阅读 · 0 评论 -
iOS中的正则表达式
参考:https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSRegularExpression_Class/http://www.raywenderlich.com/30288/nsregularexpression-tutorial-and-cheat-sheet,RW的教程,错不了htt原创 2015-10-24 23:59:21 · 1416 阅读 · 0 评论 -
iOS代码实践总结
前几个月完成对MVVM/RAC的学习之后,最近一直在默默地对项目代码进行重构,写码比较多,过了一段时间回头发现自己的代码风格还有代码质量都有大大的改善。去年在一家小公司负责客户端的研发工作,被杂乱的事情分神比较多,所以写码不多,这段时间写业务代码较多之后,感觉有点找到了属于的自己的best practice的感觉。除了专门抽时间和精力重构之外,还有就是遇到一个需要添加功能的模块,由于项目中的代码历原创 2015-09-20 15:40:18 · 17814 阅读 · 12 评论 -
Xcode常用快捷键总结
参考资料:1. http://nshipster.com/xcode-key-bindings-and-gestures/2. http://iphonedev.tv/blog/2014/9/15/14-xcode-time-saving-shortcuts-memorize-and-improve-your-productivity3. http://stackoverflow.co原创 2015-04-03 15:52:38 · 879 阅读 · 0 评论 -
iOS可持续化集成: Jenkins + bundler + cocoapods + shenzhen + fastlane + pgyer
工具介绍1. bundlerbundler用于管理ruby gem的工具,我们用来管理cocoapods以及fastlane的版本号。直接sudo gem install bundler即可。然后在工程的根目录下,添加Gemfile文件:source 'http://ruby.taobao.org'source 'http://ruby.taobao.org'gem 'coco原创 2015-07-22 18:06:14 · 9810 阅读 · 2 评论 -
iOS单元测试:Specta + Expecta + OCMock + OHHTTPStubs + KIF
框架选择参考这篇选型文章,http://zixun.github.io/blog/2015/04/11/iosdan-yuan-ce-shi-xi-lie-dan-yuan-ce-shi-kuang-jia-xuan-xing/,虽然结论不一定完全适用,但是关于框架对比的地方还是值得阅读的,基于这篇文章,排除Kiwi框架之后,决定参考一些项目的源代码,了解他们使用的测试方面的框架。原创 2015-07-22 18:14:29 · 11130 阅读 · 1 评论 -
Objective-C GCC Code Block Evaluation C Extension ({…})语法
前一段,看公司的大牛写的代码,发现一个类似下面这样的语法写UI,顿时感觉很不错,尝试之后,发现两个优点,一个是结构会更加清晰,第二个可以使用非常简洁的命名来命名局部变量,写起来会很优雅。这个是GCC编译器的一个语法,详细资料可以参考下面的文章。代码示例可以参考REMenu参考:http://nshipster.com/new-years-2014/h原创 2015-07-22 17:26:24 · 4314 阅读 · 3 评论 -
Advanced Auto Layout
参考资料:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutConcepts/AutoLayoutConcepts.htmlhttp://www.objc.io/issues/3-views/advanced-auto-layout-t原创 2015-07-22 17:58:28 · 2894 阅读 · 0 评论 -
Objective-C 学习资料汇总 -- 2015/02/11
最近来到新公司,发现他们大规模使用了我之前比较回避的hack方式做事情,虽然我自己对这个不是特别感冒,但是还是决定把OC方面的知识学习汇总一下,趁过年的时候把这几部分再次学习一遍一. OC方面的博客:1. OC中的类与对象,关于instance class 与 meta class的区别:(1). http://www.cnblogs.com/kesalin/archiv原创 2015-02-11 17:01:35 · 1837 阅读 · 1 评论 -
OC runtime学习笔记一
github Demo: https://github.com/lihei12345/OCRuntimeTest参考资料:http://blog.csdn.net/colorapp/article/details/437358171. 直接使用命令行编译OC文件:clang -fobjc-arc -framework Foundation test.m -o test;使用原创 2015-02-26 11:41:00 · 846 阅读 · 0 评论 -
OC runtime学习笔记三
github Demo: https://github.com/lihei12345/OCRuntimeTest参考资料:http://blog.csdn.net/colorapp/article/details/43735817一. Objective-C Associated ObjectsObjective-C 不能动态的添加一些属性到对象上,和其他的原创 2015-02-26 11:46:52 · 954 阅读 · 0 评论 -
iOS7.1企业证书问题
iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案,原因是由于iOS7.1要安装企业应用,url必须是https的,不能是http,这就要求我们的服务器要支持https。原创 2014-04-09 19:15:51 · 687 阅读 · 0 评论 -
Xcode的控制台调试命令
转自:http://blog.csdn.net/likendsl/article/details/7576549XCode4.0以后,编译器换成了LLVM 编译器 2.0与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代转载 2014-03-27 10:46:04 · 697 阅读 · 0 评论 -
CrashReport分析记录
用了很久,但每次使用都得搜索,记录一下,方便后续使用:原创 2014-05-06 12:04:08 · 1728 阅读 · 0 评论 -
2014/01-2014/03开发总结一
公司去年年末的时候决定转型做视频直播,于是磕磕碰碰,技术方向变更了几次,终于稳定住产品,iOS版本也再昨天再次提交appstore。说实话,好久没有碰到这么有挑战性的技术开发了,让我有些小激动。首先是技术选型,之前的技术预研遇到了一些小问题,后面在开发时遇到很多难题,最后在具体实施时发现别的产品都不是这么做的,然后开始转型,这个过程实际很痛苦,说明你之前做的很多东西都浪费了。不过也很激动,终于离项原创 2014-03-22 11:45:28 · 1513 阅读 · 0 评论 -
2014/01-2014/03开发总结二
这一篇讲一下关于开发中遇到的具体的坑================================================================首先,讲一下关于渲染线程的问题,我们的项目产品要求必须效果高大上,显得牛逼华丽无比,这样才有土豪愿意付费。刚开始做动画效果,想要自己定义一个动画框架,但是问题是还有动画编辑器之类的。。。。基本上无法完成的任务。后来不得已,决原创 2014-03-22 13:44:30 · 1020 阅读 · 0 评论 -
iOS项目目录结构思考
不知不觉,做iOS开发已经三年了,三年里,每当我看到自己几个月前写的代码,都感觉无比嫌弃。我也一直想有些突破,不想一直原创 2014-03-22 09:40:08 · 1209 阅读 · 0 评论 -
Xcode编译错误 no member named 'clock_t' int he global namespace
今天需要把ffmpeg库合入工程项目中,结果遇到一个很奇怪的问题,单独的工程可以完美运行,但是合入到我们的主项目时,缺一直报错。。。这个问题非常郁闷,测试了半天,各种添加头文件库文件搜索路径测试,都没有解决这个问题。google一下,最后发现一个类似的问题,https://github.com/johmathe/Shotdetect/issues/1。终于搞明白怎么回事了,原来是ffmpeg库中使原创 2014-01-07 17:09:02 · 11731 阅读 · 0 评论 -
OpenGL学习归纳 -- buffer的使用总结
1. FrameBuffer是其他Renderbuffer的管理者,原创 2014-07-04 17:26:56 · 7373 阅读 · 0 评论 -
Xcode5中删除 mobileprovision文件
所有的provision文件都放在~/Library/MobileDevice/Provisioning Profiles目录下原创 2014-08-04 16:39:59 · 1918 阅读 · 0 评论 -
OC runtime学习笔记二
github Demo: https://github.com/lihei12345/OCRuntimeTest参考资料:http://blog.csdn.net/colorapp/article/details/43735817一. Method, SEL, IMP的关系与使用1. Method的含义: typedef struct objc_meth原创 2015-02-26 11:45:28 · 1096 阅读 · 0 评论 -
asset catalog学习笔记
之前以为asset catalog 只支持iOS7之后的设备,前两天到了现在的公司入职,才知道最低支持是从iOS 6开始的,今天抽时间把官方文档看看,总结一下,知识点不多,这个特性还是非常有用的。官方文档地址:https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html#//appl原创 2015-02-08 22:05:52 · 1655 阅读 · 0 评论