我正在调试其他人的代码,这就是我在不知道这段代码的作用的情况下到达目的地的方式。
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];
我注意到the official KVC guide在参考@distinctUnionOfObjects运算符时这样说:
如果任何叶对象为零,则此运算符引发异常。
那么什么是叶子对象参考我的具体例子?如何追踪哪条叶子是否为零?