美文网首页
iOS 在Debug的时候隐藏属性对应的成员变量

iOS 在Debug的时候隐藏属性对应的成员变量

作者: LeLeBa | 来源:发表于2016-06-24 11:14 被阅读62次

最近做一个SDK,需要暴露一些类给第三方App使用,但又不想暴露SDK内部的逻辑架构,所以有个技术需求就是,暴露类的属性,但第三方App使用SDK开发调试的时候,在Debug下看不到对应的成员变量。直接上源码吧!

//ZPTestOBJ.h

#import <Foundation/Foundation.h>

@interface ZPTestOBJ : NSObject

@property (nonatomic, copy) NSString *zpTestString;

@end

//ZPTestOBJ.m

#import "ZPTestOBJ.h"

#include "objc/runtime.h"

@implementation ZPTestOBJ {

}

- (NSString *)zpTestString {

          id string = objc_getAssociatedObject(self, "zpTestString");

          if ([string isKindOfClass:[NSString class]]) {

                    return string;

          }else {

                   return nil;

         } 

}

- (void)setZpTestString:(NSString *)zpTestString {

          //这里还应该判断zpTestString和老的值是否相等。。。

          objc_setAssociatedObject(self, "zpTestString", zpTestString, OBJC_ASSOCIATION_COPY);

}

@end

这样我们在Debug的时候,就是下面图片这样:

test下面就看不到 zpTestString 成员了。

相关文章

网友评论

      本文标题:iOS 在Debug的时候隐藏属性对应的成员变量

      本文链接:https://www.haomeiwen.com/subject/qzeodttx.html