NSMutableArray *array = [[NSMutableArray alloc] init];
NSString *string = @"string";
[array addObject:string];
NSDate *date = [[NSDate alloc] init];
[array addObject:date];
for (*placeholder* stuff in array)
NSLog(@"one");
プレースホルダーを NSString* または NSDate*に変更すると、for ループは一致しない型を無視するだけなので、"1" が表示されるはずです。しかし、結果は「一匹一匹」。
とにかく重要ではないように見えるので、これは、状況が何であれ、プレースホルダーを idにする必要があることを意味しませんか?