Skip to content

Instantly share code, notes, and snippets.

@jacobsologub
Created March 19, 2019 03:02
Show Gist options
  • Save jacobsologub/cef8acb518d9a05629df1e5cc76df564 to your computer and use it in GitHub Desktop.
Save jacobsologub/cef8acb518d9a05629df1e5cc76df564 to your computer and use it in GitHub Desktop.
struct objc_ptr {
~objc_ptr() {};
static std::shared_ptr<objc_ptr> create (Type* object) {
return std::shared_ptr<objc_ptr> (new objc_ptr (object));
}
Type* get() {
return static_cast<Type*> (objectHolder.nonretainedObjectValue);
};
private:
objc_ptr (Type* object) {
objectHolder = [NSValue valueWithNonretainedObject: object];
};
NSValue* objectHolder = nil;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment