LookinIvarTrace.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifdef SHOULD_COMPILE_LOOKIN_SERVER
  2. //
  3. // LookinIvarTrace.h
  4. // Lookin
  5. //
  6. // Created by Li Kai on 2019/4/30.
  7. // https://lookin.work
  8. //
  9. #import <Foundation/Foundation.h>
  10. extern NSString *const LookinIvarTraceRelationValue_Self;
  11. /// 如果 hostClassName 和 ivarName 均 equal,则认为两个 LookinIvarTrace 对象彼此 equal
  12. /// 比如 A 是 B 的 superview,且 A 的 "_stageView" 指向 B,则 B 会有一个 LookinIvarTrace:hostType 为 “superview”,hostClassName 为 A 的 class,ivarName 为 “_stageView”
  13. @interface LookinIvarTrace : NSObject <NSSecureCoding, NSCopying>
  14. /// 该值可能是 "superview"、"superlayer"、“self” 或 nil
  15. @property(nonatomic, copy) NSString *relation;
  16. @property(nonatomic, copy) NSString *hostClassName;
  17. @property(nonatomic, copy) NSString *ivarName;
  18. #pragma mark - No Coding
  19. #if TARGET_OS_IPHONE
  20. @property(nonatomic, weak) id hostObject;
  21. #endif
  22. @end
  23. @interface NSObject (LookinServer)
  24. @property(nonatomic, copy) NSArray<LookinIvarTrace *> *lks_ivarTraces;
  25. @end
  26. #endif /* SHOULD_COMPILE_LOOKIN_SERVER */