我为 Lion 创建了一个简单的自定义视图应用程序。现在有朋友用 Snow Leopard 对其进行了测试,但无法启动它。可悲的是我没有例外。我唯一知道的是,这是关于 arc4random 的函数调用,这在她的版本中不可用。我实际上无法想象,在 Lion 中引入了如此重要的功能(是的,我对可可相当陌生......),所以你们有什么想法,这可能是什么?我会尝试获取异常详细信息,但我的时间压力很大......
问问题
287 次
1 回答
0
我的应用程序在 Snow Leopard 上崩溃时遇到了类似的问题,崩溃报告说:
Dyld Error Message:
Symbol not found: _arc4random_buf
Referenced from: <myApp binary>
Expected in: /usr/lib/libSystem.B.dylib
我不得不多次阅读文档arc4random()
,直到我意识到它本身从 10.4 开始可用,但arc4random_buf()
仅从 10.7 开始可用。如果您使用该arc4random_buf()
功能(如我),它将无法在 10.6 上运行。
所以,我只是用arc4random_buf()
以下 C 代码替换了该函数:
void myArc4RandBuf(uint8_t* randomBytes, size_t length) {
size_t intBufLength = (length/4)+1;
uint32_t randomInts[intBufLength];
for (int i = 0; i < intBufLength; i++) {
randomInts[i] = arc4random();
}
memcpy(randomBytes, randomInts, length);
}
这可能会慢一些,因为arc4random()
它被调用了多次,但它适用于从 10.4 到 10.8 的每个 Mac OS。
于 2012-10-18T14:22:36.863 回答