2014-10-08 4 views
0

Я пытаюсь написать обычай timingFunction для SCNAction в проекте Swift. Предполагается, что он имеет подпись (Float) -> Float и возвращает значение от 0,0 до 1,0. Но независимо от того, какое значение я верну, приложение всегда будет терпеть крах с EXC_BAD_ACCESS, заявив, что «ошибка: ошибка чтения памяти для 0xd0000000», когда действие выполняется.SceneKit на iOS: сбой с функцией синхронизации написан в Swift

Это самая основная функция, которую я мог придумать, чтобы продемонстрировать проблему:

var action = SCNAction.moveByX(0, y: 100, z: 0, duration: 1) 
action.timingFunction = { time in 
    return time 
} 
someSCNNode.runAction(action) 

Тот же самый код в Objective-C работает просто отлично.

Я тестировал это с помощью iOS 8.0.1, 8.0.2 и 8.1b2 с несколькими устройствами и симуляторами. Я делаю что-то неправильно здесь или это ошибка Swift?

ответ

0

Похож на ошибку - она ​​работает с выпуском ОС X X Yosemite. File a report с Apple, и они, вероятно, уведомит вас, когда исправление превратит его в iOS.

+0

Спасибо, что подтвердили это. Я сделал ошибку 2 недели назад, но она не была исправлена ​​в iOS 8.1. Я работал над проблемой, используя класс Objective-C, который предоставляет функции синхронизации для моего кода Swift через мостовой заголовок. –