Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标C类的调用类方法_Objective C_Class Method_Objective C Category - Fatal编程技术网

Objective c 目标C类的调用类方法

Objective c 目标C类的调用类方法,objective-c,class-method,objective-c-category,Objective C,Class Method,Objective C Category,AFNetworking有一个名为+af_sharedImageCache的类方法,我想从我自己的类别中访问它,但我想不出引用它的语法。在内部,它正在做[[self class]af\u sharedImageCache],但显然这对我不起作用 这是因为+af\u sharedImageCache是一种私有方法,未在UIImageView+AFNetworking.h上公开。不过,您可以使用Obj-C运行时调用它 if ([[self class] respondsToSelector:@sel

AFNetworking有一个名为
+af_sharedImageCache
的类方法,我想从我自己的类别中访问它,但我想不出引用它的语法。在内部,它正在做
[[self class]af\u sharedImageCache]
,但显然这对我不起作用

这是因为
+af\u sharedImageCache
是一种私有方法,未在
UIImageView+AFNetworking.h
上公开。不过,您可以使用Obj-C运行时调用它

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

但是,
AFImageCache
是一个私有类,您必须进行相同的攻击才能使用它的方法。如果我是你,我会创建自己的缓存,因为很明显,
AFNetworking
不想让你弄乱它的缓存实现。

这是因为
+af\u sharedImageCache
是一个私有方法,没有在
UIImageView+AFNetworking.h
上公开。不过,您可以使用Obj-C运行时调用它

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

但是,
AFImageCache
是一个私有类,您必须进行相同的攻击才能使用它的方法。如果我是你,我会创建自己的缓存,因为很明显,
AFNetworking
不希望你弄乱它的缓存实现。

无论如何,我现在倾向于这样做。它实际上只是一个键入url的
NSDictionary
。不太复杂。它不是一个
NSDictionary
,它是一个
NSCache
,其行为类似于
NSDictionary
,但在需要时会逐出对象以释放内存。你可以在电视上读到更多关于它的内容。不管怎样,我现在倾向于这样。它实际上只是一个键入url的
NSDictionary
。不太复杂。它不是一个
NSDictionary
,它是一个
NSCache
,其行为类似于
NSDictionary
,但在需要时会逐出对象以释放内存。你可以在网上了解更多。