Base class that provides dynamic property support in mulle-objc. Enables dynamic property access and automatic method generation for property accessors.
NSObject
struct mulle__pointermap __ivars; // Maps property names to values
-init
- Initializes the dynamic property storage-forward:
- Handles dynamic property access and method generation+isFullyDynamic
- Returns NO by default, can be overridden to enable fully dynamic
mode_MulleDynamicObjectValueSetter
- Sets value for dynamic property_MulleDynamicObjectNumberSetter
- Sets number value for dynamic property_MulleDynamicObjectValueGetter
- Gets value from dynamic property_MulleDynamicObjectForward
- Helper function for subclasses implementing forward:// Create dynamic object with property
@interface MyDynamic : MulleDynamicObject
@property(dynamic) NSString *name;
@end
@implementation MyDynamic
@dynamic name;
@end
// Use dynamic property
MyDynamic *obj = [MyDynamic new];
obj.name = @"Hello"; // Uses dynamic setter
NSString *name = obj.name; // Uses dynamic getter
typedef NS_ENUM(NSInteger, MulleObjCGenericType)
{
MulleObjCGenericTypeVoidPointer = 0, // as is
MulleObjCGenericTypeStrdup, // strdup/free
MulleObjCGenericTypeAssign, // just like void pointer
MulleObjCGenericTypeRetain, // retain/autorelease
MulleObjCGenericTypeCopy, // copy/autorelease
MulleObjCGenericTypeValue, // wrap into NSValue
MulleObjCGenericTypeNumber // wrap into NSNumber
};