<img width="879" alt="111" src="https://user-images.githubusercontent.com/13374398/96971162-50f49680-1547-11eb-8fe5-f45e0420fdb5.png"> NSArray<id<FBObjectReference>> *FBGetObjectStrongReferences(id obj, NSMutableDictionary<Class, NSArray<id<FBObjectReference>> *> *layoutCache) { NSMutableArray<id<FBObjectReference>> *array = [NSMutableArray new]; __unsafe_unretained Class previousClass = nil; __unsafe_unretained Class currentClass = object_getClass(obj); while (previousClass != currentClass) { NSArray<id<FBObjectReference>> *ivars; if (layoutCache && currentClass) { ivars = layoutCache[currentClass]; } if (!ivars) { ivars = FBGetStrongReferencesForClass(currentClass); if (layoutCache && currentClass) { layoutCache[currentClass] = ivars; } } [array addObjectsFromArray:ivars]; previousClass = currentClass; currentClass = class_getSuperclass(currentClass); } return [array copy]; } 问题总结: layoutCache[currentClass] = ivars; 这行代码报的错,注释掉就能正常编译