我在我的代码调试东西,认识到以下编译申报与实际类型,目标C
NSMutableSet *s = [[NSMutableArray alloc] init];
Card *c = [[Card alloc] init];
[s addObject:c];
[s addObject:c];
[s addObject:c];
NSLog(@"Set now contains %d cards ", [s count]); //Prints 3
但声明的类型是这里的设置..为什么允许重复?为什么这个编译呢?
你真的在你的第一行中将Set设置为数组吗?还是这是一个错字? –
当然这是一个错字,但问题是,为什么这个编译呢? –
我也很好奇。所以我跑了一个快速测试。对于相同的代码,我得到1作为输出。你是怎么得到3的?确实set不会存储重复值,但这并不一定意味着你不能添加重复值。这是一个逻辑“错误”的问题,因此编译器不会抱怨。 –