diff --git a/src/object.zig b/src/object.zig index 833689e..0700a49 100644 --- a/src/object.zig +++ b/src/object.zig @@ -97,10 +97,15 @@ pub const Object = struct { c.object_setIvar(self.value, ivar, val.value); } + /// In MacOS SDK, the memory is managed by ARC(Automatic Reference Counting). + /// Therefore, it not must retain an object explictlly. + /// But if you'd like to keep reference of objc object in ziglang-side, it could use this method to avoid releqsing object by ARC. pub fn retain(self: Object) Object { return fromId(objc_retain(self.value)); } + /// if you have use the retain method, you must call the release method. + /// Otherwise, a memory leak will occur. pub fn release(self: Object) void { objc_release(self.value); }