Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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
Iphone 第三方iOS库中的私有方法_Iphone_Ios_Uipopovercontroller_Private - Fatal编程技术网

Iphone 第三方iOS库中的私有方法

Iphone 第三方iOS库中的私有方法,iphone,ios,uipopovercontroller,private,Iphone,Ios,Uipopovercontroller,Private,我想使用iPhone的popover视图。 我发现了一个第三方库,作者说它的一些方法使用了私有方法(这会在提交到app store时引起问题) 但我看不出在他的代码中哪里使用了私有方法。 你能认出他们吗 [barButtonItem performSelector:@selector(view)]被认为是在调用私有方法 根据我的经验,当你上传图像时,苹果会自动检查你的二进制文件。那么为什么不试试上传,看看他们是否抱怨呢?有一次,我被一个包含的库咬了一口,它在自己的类中使用了一个与Apple类中

我想使用iPhone的popover视图。 我发现了一个第三方库,作者说它的一些方法使用了私有方法(这会在提交到app store时引起问题)
但我看不出在他的代码中哪里使用了私有方法。
你能认出他们吗

[barButtonItem performSelector:@selector(view)]被认为是在调用私有方法


根据我的经验,当你上传图像时,苹果会自动检查你的二进制文件。那么为什么不试试上传,看看他们是否抱怨呢?有一次,我被一个包含的库咬了一口,它在自己的类中使用了一个与Apple类中某个私有方法同名的方法,因此我的应用程序没有通过大门(我刚刚重命名了该方法,因为我有了源代码)。

你不应该访问
uibarbuttoneim
属性。这就是私人电话的位置:

if(![barButtonItem respondsToSelector:@selector(view)]) {
    // error
    return;
}

UIView *targetView = (UIView *)[barButtonItem performSelector:@selector(view)];
请参见,它没有公共
视图
属性


尽管如此,它并不是一个真正的私有调用,因为
view
方法是完全合法的,并且不会触发一些警报(比如如果您使用的方法名仅由私有调用使用),所以苹果不应该注意到它。但我只是说不应该,而不是不会。

视图不是uibarbuttonite的公共财产。参考应用程序正在使用它

为了验证任何这样的特性,最好使用点运算符或使用它的getter调用其属性(这是相同的事情)

检查此代码,这表明它是私有的:

UIView *targetView = (UIView *)[barButtonItem performSelector:@selector(view)];
它正在使用performSelector访问视图,而XCode不够智能,无法在以这些方式使用私有属性时发出任何警告

UIView *targetView = (UIView *)[barButtonItem performSelector:@selector(view)];