iOS Huddle#2

2016年10月26日星期三
iOS Huddle是我们每月在Black Pixel iOS团队的Slack频道中共享的最佳链接的摘要。

从BPXL Craft

如果您错过了它,这是BPXL Craft最近以iOS为中心的系列:

iOS上的事件交付:第1部分,第2部分和第3部分
布兰登·亚历山大(Brandon Alexander)完善了活动交付方面的出色系列。 第1部分介绍了触摸事件,命中测试和手势识别器。 第2部分完成了UIResponder中定义的其余事件, 而第3部分则说明目标动作模式。

从水冷却器周围

调试魔术
有时,要找出错误的根本原因可能确实具有挑战性。 幸运的是,我们发现了一些隐藏的宝石,这些宝石可以简化此过程。

  • Apple提供了有关iOS和macOS的“秘密”调试的技术说明。 只需确保不要使用以下任何一种方法来发布您的应用,因为它们可能会被拒绝。
  • 最近,Shaps出现了很多有用的推文。 使用私有API _viewControllerForAncestor爬上超级视图层次结构以查找父视图控制器。 还要了解如何转储打印功能以美化控制台输出。

可摘枚举
将可保存的选项列表映射到表或选择器视图是一件很麻烦的事情。 为什么不引导您的内部Tom Sawyer并让PickableEnum协议扩展代替您呢?

iOS 9中的NSNotificationCenter更改
在对NSNotificationCenter的一个可喜的变化中,基于非块的观察者现在将弱引用归零,因此无需注销它们。 阅读有关这些更改以及调试通知的其他提示。 (要获得加分,请深入研究Mike Ash的记忆,以详细说明为何将弱引用归零很重要。)

先进的Swift运算符
鉴于Swift偏爱安全性,它的算术运算符默认情况下不会溢出,而是会引发错误,这也就不足为奇了。 我们发现Swift有第二套算术运算符,在极少数情况下需要此功能时,它们会溢出。 在Swift文档的Advanced Operators部分中获取详细信息。

应用启动时间慢
用户可能是善变的,而启动缓慢的应用是许多人的祸根。 速度慢的应用也可能会被“应用评论”拒绝。 使用DYLD_PRINT_STATISTICS环境变量可以获取有关加载,绑定,设置和初始化所花费的时间的非常详细的数据。

绘制细线
当视网膜显示器发布时,iOS开发人员和设计师不得不开始不同的想法。 从设计转到代码可能导致意外行为,因为系统将从点转换为像素。 了解如何在设计需要时调整Core Graphics以绘制细线。

一个真正的从不学习C的程序员
对于许多Objective-C开发人员而言,学习C是通过的权利。 威尔·希普利(Wil Shipley)分享了一个有趣的故事,讲述了一个真正的从未学习过C的程序员。

恢复到tvOS
由于焦点引擎的工作方式,为tvOS进行开发需要转变思维。 Itty Bitty Apps详细介绍了将Revert应用迁移到tvOS的经验。

论模式与实践

计算机科学中的所有问题都可以通过另一种间接解决方案解决,当然,太多间接解决的问题除外。
—大卫·约翰·惠勒

任何其他名称的控制器
Soroush Khanlou撰写了有关作为厨房水槽的不规则“控制器”的文章,以及为什么提出更好的名称可以导致代码更简洁的原因。

MVVM是猪的口红
随着软件设计的发展,有许多旨在解决旧问题的新体系结构。 MVVM对我们许多人来说感觉太过远了。 贾伊姆·祖伯(Jaim Zuber)详细阐述了为什么它在实践中并不总是可行。

    Interesting Posts