클래스의 개인 속성을 방문하거나 수정합니다.

1504 단어
메서드 1: KVC(키 값 인코딩)
Person 클래스를 정의합니다.h 파일
@interface Person : NSObject 
@private 
//name     
@property (nonatomic, copy) NSString *name; 
@end

.m 파일
@implementation Person
@end

어떤 컨트롤러에서 Person 클래스의 개인 속성name에 접근하거나 수정하려면 먼저 도입 헤더 파일을 기억하고 아래의 구체적인 실현을 보십시오
@implementation ViewController
- (void)viewDidLoad{
  [super viewDidLoad];
  Person *p = [Person new];
  //        
  [p setValue:@"yyMae" forKey:@"name"];
  //        
  NSString *name = [p valueForKey:@"name"];
}

방법2:runtime를 통해 클래스의 개인 속성 값을 가져오거나 수정합니다
Person 클래스를 정의합니다.h 파일
@interface Person : NSObject 
@private 
//name     
@property (nonatomic, copy) NSString *name; 
@end

.m 파일
@implementation Person
@end

어떤 컨트롤러에서 Person 클래스의 개인 속성name에 접근하거나 수정하려면 먼저 도입 헤더 파일을 기억하고 아래의 구체적인 실현을 보십시오
@implementation ViewController
- (void)viewDidLoad{
  [super viewDidLoad];
  Person *p = [Person new];
  // IVar runtime       
  unsigned int count = 0; //count       
  //            
  Ivar *members = class_copyIvarList([Person class], &count); 
  for (int i = 0; i < count; i++) { 
    Ivar ivar = members[i]; 
    //              
    const char *memberName = ivar_getName(ivar);               
    NSLog(@"%s",memberName); 
    Ivar name = members[0]; 
    //       
    object_setIvar(Person, name, @"yyMae"); 
}

좋은 웹페이지 즐겨찾기