💡
原文英文,约300词,阅读约需1分钟。
📝
内容提要
在开发PSPDFKit时,我倾向于使用视图控制器容器来更好地分配责任。为调试UIViewControllers,我编写了递归描述方法,列出附加子视图控制器并检查其框架是否大于父视图控制器,以发现潜在错误。该方法适用于iOS 4.3及以上版本。
🎯
关键要点
-
在开发PSPDFKit时,作者倾向于使用视图控制器容器来更好地分配不同视图控制器之间的责任。
-
作者编写了一个递归描述方法,用于调试UIViewControllers,以列出附加的子视图控制器并检查其框架是否大于父视图控制器。
-
该方法适用于iOS 4.3及以上版本,并且在iOS 5及以上版本中可以列出附加的子视图控制器。
-
使用__attribute__((constructor))可以在应用加载的早期阶段调用该方法,适用于有无ARC的情况。
-
作者使用了一个私有API调用,但该调用经过混淆,能够通过App Store审核,建议仅在调试模式下编译该函数。
❓
延伸问答
什么是递归描述方法,它的用途是什么?
递归描述方法用于调试UIViewControllers,列出附加的子视图控制器并检查其框架是否大于父视图控制器,以发现潜在错误。
该方法适用于哪些iOS版本?
该方法适用于iOS 4.3及以上版本,并在iOS 5及以上版本中可以列出附加的子视图控制器。
如何在应用加载早期阶段调用递归描述方法?
可以使用__attribute__((constructor))在应用加载的早期阶段调用该方法。
使用递归描述方法时需要注意哪些事项?
需要注意的是,使用了一个私有API调用,但该调用经过混淆,能够通过App Store审核,建议仅在调试模式下编译该函数。
为什么作者选择使用视图控制器容器?
作者选择使用视图控制器容器是为了更好地分配不同视图控制器之间的责任。
递归描述方法能发现什么类型的错误?
该方法能发现子视图控制器的框架是否大于其父视图控制器的错误,这通常是容易忽视的bug。
➡️