私は他の誰かのコードをデバッグしているので、このコードが何をするのかわからなくても、この時点にたどり着きました。
valueForKeyPath は NSInvalidArgumentException をスローし、次のコードを指定するとアプリがクラッシュします。
NSMutableSet *cars = self.allCars; //assume allCars is already initialized and contains at least one car.
NSString *key = @"make";
NSString *distinctUnionOfObjects = [NSString stringWithFormat:@"@distinctUnionOfObjects.%@",key];
NSArray *makeArray = [cars valueForKeyPath:distinctUnionOfObjects];
公式の KVC ガイドでは、@distinctUnionOfObjects 演算子に関して次のように述べられていることに気付きました。
リーフ オブジェクトのいずれかが nil の場合、この演算子は例外を発生させます。
では、私の特定の例に関して、葉オブジェクトとは何ですか? 具体的にどの葉が nil であるかを追跡するにはどうすればよいですか?