2014-10-08 85 views
0

我試圖在Swift項目中爲SCNAction編寫自定義timingFunction。它應該有簽名(Float) -> Float並返回一個介於0.0和1.0之間的值。但是無論我返回什麼值,應用程序總是會在執行操作時發生EXC_BAD_ACCESS錯誤,並顯示「錯誤:內存讀取失敗,0xd0000000」。iOS上的SceneKit:使用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

看起來像一個錯誤 - 它適用於運送OS X優勝美地版本。 File a report與蘋果,他們可能會通知你,當修復程序進入iOS。

+0

感謝您的確認。我在兩週前提交了一個bug,但它在iOS 8.1中尚未修復。我通過使用Objective-C類來解決這個問題,該類通過橋接頭爲我的Swift代碼提供時序函數。 – 2014-10-23 08:17:23