В вашем viewDidLoad обратите внимание, что мой селектор вызывает мою функцию с двоеточием.
override func viewDidLoad() {
super.viewDidLoad()
// init gesture recognizer swipe right vars
var rightSwipe = UISwipeGestureRecognizer(target: self, action: Selector("gestureFunc:"))
rightSwipe.direction = UISwipeGestureRecognizerDirection.Right
view.addGestureRecognizer(rightSwipe)
}
Затем убедитесь, что селектор, т. Е. Func, готов принять свайп:
// selector from UISwipeGestureRecognizer
func nextWeapon(gesture: UISwipeGestureRecognizer) {
println("swipe right")
}
Сборщик мусора Ruby будет собирать все объекты Ruby, на которые есть ссылки в переменных экземпляра вашего объекта Ruby. Вам не нужно и не следует освобождать переменные экземпляра Ruby самостоятельно (т.е. любые объекты, доступ к которым осуществляется с помощью rb_iv_set ()
/ rb_iv_get ()
в вашем расширении).
Однако, если обернутая структура C ссылается на объекты Ruby, вам нужно будет отметить их в обратном вызове mark
, который вы передаете в Data_Wrap_Struct ()
.
(И вам всегда придется освобождать базовую структуру и выполнять любую другую очистку, которая может потребоваться, например, закрытие файлов, сокетов и т. Д. В вашем бесплатном
обратном вызове.)