Objective-C의 범주를 사용하여 서브 클래 싱 할 필요없이 클래스에 메서드를 추가 할 수 있다는 것을 알고 있습니다. 또한이 카테고리는 클래스에 인스턴스 변수를 추가하는 데 사용할 수 없다는 것을 알고 있습니다.NSData에 인스턴스 변수 추가
인스턴스 변수를 추가하는 데 사용할 수있는 클래스 확장에 대해 약간 읽었지만 클래스 확장을 사용하여 NSData와 같은 기존 클래스를 수정하는 방법을 이해할 수 없습니다.
나는 NSURL하고있는 NSData를 포함하는 코어 데이터 모델을 가지고
내 문제는 다음과 같다. NSData는 NSURL에 대한 데이터를 표시합니다. 보기에서 데이터를 표시해야하는 경우 다음 확인을 수행합니다. --- [NSData bytes]> 0 인 경우 NSData를 표시합니다. --- 그렇지 않으면 NSURL에서 데이터를 가져 와서 반환 할 때 데이터를 표시합니다.
충분히 간단합니다. 그러나 NSURL이 업데이트되면 문제가 발생합니다. 그래서, [NSData bytes]가 이미 0보다 크기 때문에 새 이미지로 NSURL 경로를 수정하면 새 이미지를 가져 오기 위해 추가 호출을하지 않습니다.
내가하고 싶은 것은 URL 변수라는 NSData에 인스턴스 변수를 추가하여 데이터의 출처에 대한 정보를 보유하고 싶습니다. CoreData를 사용하기 때문에 NSData를 서브 클래스로 만들 수 없습니다.
누구나 간단한 해결책을 알고 있습니까? 아마도 클래스 확장에 대한 이해에 차이가 있거나 아마도 간단한 방법이 없을 수도 있습니다.
NSData와 NSURL을 모두 알고있는 관리 객체에서 체크인을 수행 할 수 없습니까? –
할 수는 있지만이 기능을 추상화하여 특정 모델에 종속되지 않도록하고 싶습니다. –