카테고리의 구현 파일에서 다른 카테고리를 선언하고 MyCategoryName_Private
과 같은 것으로 여기에 사유 재산을 선언하십시오. 연결된 객체를 사용하여 -propertyName
및 -setPropertyName:
메소드의 구현을 제공하십시오.
예를 들어, 구현 파일은 다음과 같습니다
#import "SomeClass+MyCategory.h"
#import <objc/runtime.h>
@interface SomeClass (MyCategory_Private)
@property (nonatomic, strong) id somePrivateProperty;
@end
@implementation SomeClass (MyCategory_Private)
static void *AssociationKey;
- (id)somePrivateProperty
{
return objc_getAssociatedObject(self, AssociationKey);
}
- (void)setSomePrivateProperty:(id)arg
{
objc_setAssociatedObject(self, AssociationKey, arg, OBJC_ASSOCIATION_RETAIN);
}
@end
@implementation SomeClass (MyCategory)
// implement your publicly declared category methods
@end
Yahey을, 대단히 감사합니다! 그것이 내가 찾고 있었던 바로 그 것이다! 어쩌면 어떤 사람들은 이것이 최고의 코딩 실습이 아니라고 생각할 것입니다. 어쨌든 이것은 내 문제를 해결하고 나를 위해 훨씬 더 쉽게 물건을 만듭니다. –
Beautiful. 고맙습니다! – theDuncs
개인 속성이 더 필요하면 더 많은 AssociationKeys를 만들어야한다고 생각합니까? – allenlinli