2013-09-14 8 views
1

AFNetworking имеет метод класса, называемый + af_sharedImageCache, который я хочу получить из своей категории, но я не могу понять синтаксис для ссылки на это. Внутри он делает [[self class] af_sharedImageCache], но, очевидно, это не сработает для меня. :)Метод класса вызова объекта Objective C

ответ

1

Это потому, что + af_sharedImageCache - частный метод, не выставленный на UIImageView+AFNetworking.h. Вы можете назвать это, хотя, используя время выполнения Obj-C.

if ([[self class] respondsToSelector:@sel(af_sharedImageCache)]) { 
    NSCache *cache = [[self class] performSelector:@sel(af_sharedImageCache)]; 
} 

Однако AFImageCache частный класс, и вы должны сделать то же хак, чтобы использовать его методы. Если бы я был вами, я бы создал свой собственный кеш, так как ясно, что AFNetworking не хочет, чтобы вы возились с его реализацией кеша.

+0

Я все равно склоняюсь к этому. Это буквально просто «NSDictionary», введенный на URL. Не совсем сложно. – devios1

+2

Это не «NSDictionary», это «NSCache», который ведет себя как «NSDictionary», но при необходимости вытесняет объекты в свободную память. Подробнее об этом читайте в [этой хорошей статье о NSHipster] (http://nshipster.com/nscache/). –

Смежные вопросы