2

我需要将其他数据编码为NSString(长话短说,请不要问为什么......)

我使用此处NSString概述的方法进行了子类化:

当我将这些子类之一分配为UILabel's文本时,我希望在询问标签文本时将其取回。但事实并非如此。(我得到了一个 NSString 集群实例)

MyString *string = [[MyString alloc] initWithString:@"Some string"];
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
l.text = string;
NSString *t = l.text;  // not getting the "MyString" object

有解决办法吗?

4

2 回答 2

6

标签复制字符串:

@property (nonatomic, copy) NSString *text

所以你至少需要实现复制来返回你的子类类型并复制你的其他数据。

(不是子类化是最好的主意)

于 2015-12-22T11:25:54.180 回答
0

如果你继承 NSString,你会比我更勇敢,而且你完全靠自己。NSString 是一个类簇。你基本上没有机会在地狱中继承它并让它工作。它从初始化开始,其中将是 NSString init 方法的 [super init] 可能返回任何类型的对象。

于 2015-12-22T11:53:05.023 回答