的Objective-C Runtime provides the class_addIvar C function:Objective-C运行时:为class_addIvar放置尺寸和对齐的内容?
BOOL class_addIvar(Class cls, const char *name, size_t size,
uint8_t alignment, const char *types)
我该怎么把为size
和alignment
?
我添加了一个类型为UITextPosition *
的实例变量,但没有UITextPosition
对象在范围内。对于size
,我可以只做sizeof(self)
,其中self
是UITextField
的子类吗?也就是说,我能否假设UITextPosition
对象与UITextField
对象的大小相同?
我该如何获得alignment
?
谢谢你,是的,我意识到我实际上没有增加伊娃无论如何,因为我只注意到'UITextInput'有一个'beginningOfDocument'伊娃,而这正是我想要的。所以,我会用它。但是,这很了解。谢谢!我明白你是怎么想出'尺寸'的,但你是怎么想到'对齐'的?为什么它是log2的大小? – ma11hew28
它是log2,因为'class_addIvar'确实有'1 << align',这相当于'pow(2,align)'。请参阅['class_addIvar'手册](http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html#//apple_ref/c/func/class_addIvar)。 –