我在我的代碼調試東西,認識到以下編譯申報與實際類型,目標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不會存儲重複值,但這並不一定意味着你不能添加重複值。這是一個邏輯「錯誤」的問題,因此編譯器不會抱怨。 –