jokade / scalanative-cocoa

A scala-native bridge to Cocoa
MIT License
21 stars 2 forks source link

Provide retain annotation for properties #2

Closed jokade closed 6 years ago

jokade commented 7 years ago

To simplify memory management, we should provide a @retain annotation for vars, similar to Objective-C:

import cocoa.foundation._

@ScalaObjC
class Foo(self: NSObject) {
  @retain
  public var date: NSDate = NSDate.alloc().init()
}

should be tranformed into

@ScalaObjC
class Foo(self: NSObject) {
  private var __v_date: NSDate = NSDate.alloc().init()

  def date: NSDate = __v_date
  def date_=(o: NSDate): Unit = {
    __v_date.release()
    __v_date = o.retain()
  }
}
jokade commented 6 years ago

Implemented by jokade/scalanative-obj-interop#9