让我们来搞崩 Cocoa 吧 (黑暗代码)

Posted iOS开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让我们来搞崩 Cocoa 吧 (黑暗代码)相关的知识,希望对你有一定的参考价值。



本文最初发布时间为2014年1月10日是这个博客中我最喜欢的部分。但是,有时候搞崩程序比编写它们更有趣。现在,我将要开发一些好玩且不同寻常的方式去让 Cocoa 崩溃。


带有 NUL 的字符串


NUL(译者:应该为 '\0') 字符在 ASCII 和 Unicode 中代表 0,是一个不寻常的麻烦鬼。当在 C 字符串中时,它不作为一个字符,而是一个代表字符串结束的标识符。在其他的上下文环境中,它就会跟其他字符一样了。


当你混合 C 字符串和其它上下文环境,就会产生很有趣的结果。例如:`NSString` 对象,使用 NUL 字符毫无问题:


NSString *s = @"abc\0def";


如果我们仔细的话,我们可以使用 lldb 打印它:



(lldb) p (void)[[NSFileHandle fileHandleWithStandardOutput] writeData: [s dataUsingEncoding: 5]]

以上是关于让我们来搞崩 Cocoa 吧 (黑暗代码)的主要内容,如果未能解决你的问题,请参考以下文章

十条实用的jQuery代码片段

[LCA]二月的最后一天来搞事情吧

高效Web开发的10个jQuery代码片段

Xcode自定义代码块

56个PHP开发常用代码

不用到 2038 年,MySQL 的 TIMESTAMP 就能把我们系统搞崩