0

我正在尝试使用另一个被NSMutableAttributedString调用来制作被调用的深层副本。两者的属性都设置为,我按如下方式创建备份:textNSMutableAttributedStringtextBackup@property (nonatomic, retain)

NSMutableAttributedString *textBackupTemp = [self.text mutableCopy];
self.textBackup = textBackupTemp;
[textBackupTemp release];

然后稍后,当出现某种情况时,我需要恢复副本:

NSMutableAttributedString *textTemp = [self.textBackup mutableCopy];
self.text = textTemp;
[textTemp release];

这似乎工作正常,但是下次我访问text如下:

[self.text.string characterAtIndex: self.cursor.position-1]

我收到以下错误:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFString characterAtIndex:]: Range or index out of bounds'

字符串大小已更改为 1 而不是应有的 43。这里可能发生了什么......

编辑:更新了问题。

4

1 回答 1

0

这只是我的一个愚蠢的错误,我已经@property(nonatomic, assign)为我的textBackup实例变量添加了。我将其更改为retain,现在一切正常。

于 2012-06-19T07:26:04.047 回答