iOS RunTime 이해

1477 단어
  • 대상을 누를 수 있는 속성
  • 동적 추가, 속성 수정, 동적 추가, 수정, 교체 방법, 동적 추가, 수정, 교체 프로토콜
  • 클래스, 대상, 프로토콜을 동적으로 만들 수 있음
  • 차단 가능 방법
  • /**runtime를 이용하여 OC가 실현하기 어려운 기능을 실현할 수 있다
  • 동적 교환 두 가지의 실현(특히 교환 시스템이 자체로 가지고 있는 방법)
  • 구성원 변수와 구성원을 동적으로 추가하는 방법
  • 어떤 종류의 모든 방법을 획득하고 모든 변수*/
  • OC: [obj func]; runtime: objc_msgSend(obj, @selector(func));
    //속성 id personClass 가져오기 = objcgetClass("CZPerson"); unsigned int outCount; objc_property_t *propertys = class_copyPropertyList(personClass, &outCount); for (int i = 0; i < outCount; i++) { objc_property_t property = propertys[i]; printf("%s:%s", property_getName(property), property_getAttributes(property)); }
    free(propertys);
    

    ///사용: 분류에서 실현 방법, 원생 방법을 대체하여 자신이 원하는 것을 실현할 수 있다//어떤 종류를 얻는 방법//classgetClassMethod(__unsafe_unretained Class cls, SEL name)
    //  
    

    //class_getInstanceMethod(__unsafe_unretained Class cls, SEL name)
    //  
    

    //method_exchangeImplementations(Method m1, Method m2)
    ///  :  getter setter  
    // setter  , 
    

    //objc_setAssociatedObject(self, &nameKey, name, OBJC_ASSOCIATION_COPY_NONATOMIC);//getter//objc_getAssociatedObject(self, nameKey);
    ///  :  
    

    //class_copyIvarList( unsafe unretained Class cls, unsigned int *outCount)//구성원 변수의 이름 가져오기//ivargetName(Ivar v);//구성원 변수의 유형 가져오기//ivargetTypeEncoding(Ivar v)

    좋은 웹페이지 즐겨찾기