我有具有NSMutableDictionary
作爲屬性的類:的NSMutableDictionary崩潰用「發送到不可變對象突變消息」
@interface Alibi : NSObject <NSCopying>
@property (nonatomic, copy) NSMutableDictionary * alibiDetails;
@end
隨着下面的構造:
- (Alibi *)init
{
self = [super init];
_alibiDetails = [NSMutableDictionary dictionary];
return self;
}
和複印方法:
- (Alibi *)copyWithZone:(NSZone *)zone
{
Alibi *theCopy = [[Alibi alloc] init];
theCopy.alibiDetails = [self.alibiDetails mutableCopy];
return theCopy;
}
當我嘗試呼叫setObject:ForKey:
時,出現運行時錯誤mutating method sent to immutable object
。
我有在視圖控制器中聲明的Alibi
對象爲@property (copy, nonatomic) Alibi * theAlibi;
,我用self.theAlibi = [[Alibi alloc] init];
在viewDidLoad
中初始化它。
出故障的線路是:
NSString * recipient;
recipient = @"Boss";
[self.theAlibi.alibiDetails setObject:recipient forKey:@"Recipient"];
請讓我知道我在做什麼錯在這裏。我正在爲iPhone上的iOS 5編碼。