我有一个返回CGSize这样的方法...

-(CGSize)theSizeToUse

然后在其他地方,我有代码询问类是否响应此选择器,如果是,请使用perform选择器对其进行调用...
if ([myClass respondsToSelector:@selector(theSizeToUse)])    CGSize
   theSize = [myClass performSelector:@selector:(theSizeToUse)];

好吧,这是行不通的,因为performSelector将返回一个id,而不是CGSize,所以我研究了将其包装在NSValue中并返回一个NSValue,然后将其解开。

查看NSValue的文档,很清楚该怎么做...只需调用NSValue valueWithSize对其进行打包,然后调用NSValue sizeValue对其进行打包。
一切顺利,直到我达到sizeValue为止……没有这样的属性或方法。

我正在为iOS开发,目标是在装有OS X 10.10的MacBook上使用iOS 7

知道如何使它起作用吗?

最佳答案

您可能通过Google查找了NSValue吗?这将带您到Mac文档,该文档为+valueWithSize:结构建议sizeValueNSSize。在iOS上未定义NSSize

对于iOS,您应该使用+valueWithCGSize:-CGSizeValueNSValue的iOS文档为here

关于ios - 通过performSelector传递CGSize,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30652536/

10-12 04:43