Итак, я понимаю, что категории в Objective-C можно использовать для добавления методов в классы без необходимости создавать подклассы. Я также понимаю, что эти категории нельзя использовать для добавления переменных экземпляра в классы.
Я немного прочитал о расширениях классов, которые можно использовать для добавления переменных экземпляра, но я не понимаю, как использовать расширения классов для изменения существующего класса, такого как NSData.
Моя проблема заключается в следующем:
У меня есть базовая модель данных, которая содержит NSURL и NSData. NSData отображает данные для NSURL. Когда представление должно отображать данные, я делаю следующую проверку:
--- Если [NSData bytes]> 0, отобразить NSData.
--- В противном случае извлеките данные в NSURL и отобразите данные, когда они вернут
Достаточно просто. Тем не менее, я сталкиваюсь с проблемами, когда NSURL обновляется. Поэтому, если я изменю путь NSURL новым изображением, поскольку [байты NSData] уже больше 0, я не выполняю дополнительный вызов для извлечения нового изображения.
Что я хотел бы сделать, так это добавить переменную экземпляра в NSData с именем URLKey, которая будет содержать информацию о том, откуда поступают данные. Я не могу создать подкласс NSData, потому что я использую CoreData.
Кто-нибудь знает некоторые простые решения для этого? Возможно, в моем понимании расширений классов есть пробел, или просто не существует простого способа.