gpt4 book ai didi

iOS 如何在不子类化所有内容的情况下为类引入具有 UDID 的能力?

转载 作者:行者123 更新时间:2023-11-28 18:20:54 26 4
gpt4 key购买 nike

我正在使用键控归档,发现我的一些对象需要具有通用标识符。为此,我正在考虑引入 UDID。

我可以像这样创建一个自定义类并让我的对象继承自它,但这意味着 udid 的多个实现。我只想拥有一个。

@interface NSObjectWithUDID : NSObject

@property(nonatomic,strong,readonly)NSString* udid;

@end

我的问题是:如何为我的类添加响应 [udid] 消息的能力,而不必子类化 NSObjectWithUDID?

我尝试了类别,但不确定我是否可以在那里使用属性。

最佳答案

你是对的,你不能在类别中添加属性,但你可以使用 objc 运行时方法进行运行时设置

#import <objc/runtime.h>
static char udidKey;

@implementation NSObject (UDIDAddition)

- (NSString *)udid {
return objc_getAssociatedObject(self, &udidKey);
}

- (void)setUdid:(NSString *)udid {
objc_setAssociatedObject(self, &udidKey, udid, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end

关于iOS 如何在不子类化所有内容的情况下为类引入具有 UDID 的能力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20937614/

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