gpt4 book ai didi

objective-c - objc_setAssociatedObject 是如何工作的?

转载 作者:太空狗 更新时间:2023-10-30 03:37:04 26 4
gpt4 key购买 nike

<分区>

正如我们所知,我们可以使用类别和运行时方法在 Objective-C 中添加一个变量,例如objc_setAssociatedObjectobjc_getAssociatedObject。例如:

#import <objc/runtime.h>
@interface Person (EmailAddress)
@property (nonatomic, readwrite, copy) NSString *emailAddress;
@end

@implementation Person (EmailAddress)

static char emailAddressKey;

- (NSString *)emailAddress {
return objc_getAssociatedObject(self,
&emailAddressKey);
}

- (void)setEmailAddress:(NSString *)emailAddress {
objc_setAssociatedObject(self,
&emailAddressKey,
emailAddress,
OBJC_ASSOCIATION_COPY);
}
@end

但是有人知道objc_getAssociatedObjectobjc_setAssociatedObject 是做什么的吗?我的意思是,我们添加到对象(这里是 self)的变量存储在哪里?以及变量和self的关系?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com