Du's Time

Du's Time

Code, Thinking or maybe something else

如何学英语
单词的重要性单词是英语的基石,词汇量即一切。词汇量太少听说读写不管干什么都会卡住,词汇量上去了听说读写稍微突击一下便可突飞猛进。 嗯。说到这里可以去这个地址测一下词汇量。 那么如何提升词汇量呢。基本上有以下两种方法 背单词。没错这是个非常笨的方法,特别枯燥特别吃力而且对记忆力差的人不友好,因此很多教程不提倡被单词。但这的确是提升词汇量最直接的方法,忍住痛苦认真撸完一本单词书,保证内力大增。另外要记住背单词只是速成,背好的单词都是死的,不多听多说多读多写,把记住的单词运用出来,就不算神功大成。 从听说读写等日常中提升词汇量。这种方法抛弃了死记硬背,有了情景上下文单词理解起来的确能更深刻。...
如何打出同时支持真机和模拟器的 Framework
创建一个 Framework 的 target,将需要的所有文件拖入 target 中 先将目标设备选为真机,build,然后在 product 里找到打好的 framework 再将目标设备选为模拟器,build,然后在 product 里找到打好的 framework 执行 lipo 命令 1lipo -create '真机版 frameworkd 的露囧' '模拟器版 framework 的路径' -output '新的framework的名称' 生成的新 framework 就同时支持真机和模拟器架构了~ 相关资料: How to export “fat” Cocoa...
使用 iOS 10.3 新 API 给 app 更换 icon
iOS 10.3 出来好长一段时间了,其中有一个换 icon 的 API setAlternateIconName 感觉挺好玩的一直想试一把。实验结果如下。 首先准备好几个icon,根据苹果爸爸的要求,icon 2x 图尺寸为 120x120,3x 图尺寸为 180x180。 把这几个 icon 拖到工程中,这里有几个注意点: 图片直接当做资源拖到工程中,不要放到Assets里 如果之前app的icon是用Assets管理的,把Assets里的AppIcon删掉,并把 Target -> General -> App Icons and Launch Images 里的 ...
如何获取UIWebView请求时的HTTP状态码
有时我们需要向前端一样为请求错误的UIWebView界面添加更好看的本地错误提示,这就需要获取到UIWebView请求网页的HTTP状态码,基本思路是在webView请求结束后获取到缓存中的response,再根据response的statusCode进行判断,因此截获操作应该在UIWebViewDelegate中的webViewDidFinishLoad方法中进行 12345678910- (void)webViewDidFinishLoad:(UIWebView *)webView{ ... //获取status code NSHTTPURLResponse *respon...
Taptic Engine初探
感谢组织过年借我只iPhone 7P,赶紧呈上一篇Taptic Engine报答组织 简述Taptic Engine 是苹果的触觉反馈技术,其中Taptic演变自Haptic,即触觉。Taptic Engine目前已经应用在苹果全线设备中。它让Apple Watch震动时有手腕被人拍了一下的感觉。让MacBook触摸板有以假乱真的触感(Force Touch)。而在iPhone上,除了实现了3D Touch让屏幕多了一维交互外,还实现了虚拟Home键的反馈效果,甚至还提供了一套Taptic API供开发者实现自己的震动反馈。 何时使用触摸反馈为了保证所有app体验的一致性,苹果总结了...
weak变量性能低的原因
经常看到说weak变量性能低要少用,但就是没看到文章说明一下原因,于是我弱弱总结一下: weak变量使用时会生成autorelease临时变量,增加性能消耗 所有weak变量都会被加入到weak散列表中,每次有内存释放时都会遍历这个散列表,置空所有的weak变量。如果weak变量太多,遍历散列表将变得非常耗时 参考资料:《Objective-C 高级编程》
weak-strong dance的另外一种解释
以下是一个标准的weak-strong dance1234567891011121314MyViewController *myController = [[MyViewController alloc] init];// ...MyViewController * __weak weakMyController = myController;myController.completionHandler = ^(NSInteger result) { MyViewController *strongMyController = weakMyController; ...
macOS 配置手册
常用快捷键苹果官方文档对Mac的快捷键总结的非常全面。如果一定要给文档勾个重点的话,强烈建议记下常用的“文稿快捷键”,这些快捷键几乎可以在所有的文本框中使用,能极大提高编码效率。 系统设置触摸板 开启轻点需要按下才能单击的默认设置太不人性化了,开启“轻点来点按”,只要轻轻拍一下触摸板就能代替鼠标点击。开启方法:系统偏好设置->触摸板,将下图的选项勾上 开启三指拖拽默认的触摸板拖拽设置吃力的不行,一边按住触摸板一边移动手指的操作简直反人类。好在macOS可以用三指拖拽来代替按压拖拽,开启之后拖拽体验不输鼠标。开启方式:系统偏好设置->辅助功能,然后在左侧列表里选择“鼠标与...
使用FBSimulatorControl做模拟器适配测试
作为一只iOS狗,虽然需要适配的屏幕有限,但每次适配自测的时候都挨个去启动N个模拟器也是很心塞。放狗搜到Facebook爸爸在15年的时候就搞了个FBSimulatorControl库支持同时启动多个模拟器,鉴于网上中文配置FBSimulatorControl的教程比较少。于是将自己的探索过程记录一下。 安装FBSimulatorControl小工具首先要加入Facebook Tap1brew tap facebook/fb 然后正常brew安装就行1brew install fbsimctl --HEAD 启动多个模拟器首先先看看自己有哪些模拟器,执行fbsimctl list查看自己...
view controller 与 view 依赖关系探讨
众所周知,从IB中拖出来的outlet Xcode会默认设置为weak,那么代码new出来并且addSubview到self.view的view,我们在property里要设置为strong还是weak呢。 Weak or Strong?假设一个ViewController的self.view中有一个Label,那么他们三者的关系是: 可以看到Label的所有者其实是self.view,正常来说一个对象只有一个所有者,如果再将ViewController中的Label引用声明为strong,那么当label从self.view中移除后,label将不会销毁,造成View的冗余。 于是我...
Du
Hacker, Curious about the world