Xcode 6.1:发现多个名为“count”的方法,结果、参数类型或属性不匹配
Posted
技术标签:
【中文标题】Xcode 6.1:发现多个名为“count”的方法,结果、参数类型或属性不匹配【英文标题】:Xcode 6.1 : Multiple methods named 'count' found with mismatched result, parameter type or attributes 【发布时间】:2015-02-28 15:16:37 【问题描述】:我收到在构建应用程序时发现多个名为“count”的方法结果不匹配、参数类型或属性错误。该应用程序在 32 位下运行良好。根据Apple guideline,我已将其更改为 64 位。我已经提到了这个Link,但没有得到任何帮助。
我已经在模拟器上的多台设备上测试了应用程序。 在 32 位上可以正常工作,但在 64 位上会提示错误。 为什么会这样?
-(void)serviceSuccessFulForPatientSelect:(id)response
[self hideOverlay];
if([response isKindOfClass:[NSArray class]])
if([response count]>0)
if(1)
...
[refillDetailTable reloadData];
【问题讨论】:
在调用“count”之前尝试将响应投射到 NSArray。 【参考方案1】:仔细检查您的回复,是否有任何名称为 count
的属性【讨论】:
如果有什么问题?【参考方案2】:解决方案 1: 我已经声明了 count as property in a view controller。我将它重命名为 CountValue,问题就解决了。
解决方案 2: 您可以类型转换为适当的数据类型。
if([(NSArray *) response count]>0)
...
这个解决方案对我来说是不可行的,因为有 1000 个位置包含 [response count]
。
【讨论】:
【参考方案3】:if([response count]>0)
response
在这里是一个id
,错误表明有多个称为count
的方法返回不同的类型——int
和NSInteger
我认为在 64 位中是不同的,但在 32 位中是相同的。
要修复,请执行强制转换:
if([(NSArray*)response count]>0)
【讨论】:
铸造不可行,因为大约有 1000 多个地方需要更改...任何其他修复 数千个地方?您的替代方法是找到其他计数方法(大概在您的代码中)并更改返回类型。但是,如果您有数以千计的 id 对象,那听起来是错误的。以上是关于Xcode 6.1:发现多个名为“count”的方法,结果、参数类型或属性不匹配的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X Yosemite 上下载 XCode 6.1 时遇到问题