为什么mutableCopy不能在NSNumber上使用?

Ben*_*Ben 1 cocoa cocoa-touch objective-c nsnumber

码:

NSNumber* i = [[NSNumber alloc] initWithFloat:1.0];
NSNumber* j = [[NSNumber alloc] init];

j= [i mutableCopy];
Run Code Online (Sandbox Code Playgroud)

运行时j= [i mutableCopy],程序崩溃.

我知道NSNumber是不可改变的类型; 当您使用copy,i并且j将具有相同的存储器地址(参考副本).但是在使用时mutableCopy,它应该执行值复制.为什么mutableCopy不能用NSNumber

Bor*_*kyi 7

NSNumberclass不符合NSMutableCopying协议,因此它不响应mutableCopy选择器.NSMutableNumber在Cocoa中没有类似的.一个NSNumber目的是用于向与需要Objective-C对象API使用它的单个C数据项的简单容器.如果需要执行任何数字突变,可以使用标量C类型.