какао arc4random OS X 10.6 - PullRequest
       3

какао arc4random OS X 10.6

1 голос
/ 08 ноября 2011

Я создал простое приложение Custom View для Lion. Теперь друг протестировал его с помощью Snow Leopard и не смог его запустить. К сожалению, у меня нет исключения. Единственное, что я знаю, это то, что речь идет о вызове функции arc4random, который недоступен в ее версии. Я действительно не могу представить, что такая важная функция была введена в Lion (да, я довольно новичок в какао ...), так что вы, ребята, имеете какое-то представление, о чем это может быть? Я постараюсь получить подробности об исключении, но я в значительной степени испытываю нехватку времени ...

1 Ответ

0 голосов
/ 18 октября 2012

У меня была похожая проблема с тем, что мое приложение зависало на Snow Leopard с отчетом о сбое, в котором говорилось:

Dyld Error Message:
Symbol not found: _arc4random_buf
Referenced from: <myApp binary>
Expected in: /usr/lib/libSystem.B.dylib

Мне приходилось читать документацию несколько раз, пока я не понял, что *Само 1006 * доступно с 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() вызывается несколько раз, но работаетна каждой Mac OS от 10,4 до 10,8.

...