ma1*_*w28 4 c objective-c sizeof size-t memory-alignment
的Objective-C运行提供class_addIvar C函数:
BOOL class_addIvar(Class cls, const char *name, size_t size,
uint8_t alignment, const char *types)
Run Code Online (Sandbox Code Playgroud)
我该怎么把为size和alignment?
我正在添加一个类型的实例变量UITextPosition *,但没有UITextPosition对象在范围内.因为size,我可以做sizeof(self),哪个self是子类UITextField?即,我可以假设一个UITextPosition对象与对象的大小相同UITextField吗?
我怎么得到alignment?
关于这些东西的文档信息量不大,这反映出通常你不应该使用它.但是,您可以要求对齐:
char *texPosEncoding = @encode(UITextPosition);
NSUInteger textPosSize, textPosAlign;
NSGetSizeAndAlignment(textPosEncoding, &textPosSize, &textPosAlign);
class_addIvar(yourClass, "yourIvarName", textPosSize, textPosAlign, textPosEncoding);
Run Code Online (Sandbox Code Playgroud)