繁体   English   中英

分配给不兼容类型的强大是什么意思?

[英]What exactly does it mean to assign to strong from incompatible type?

我很难找到从不兼容类型分配给__strong意味着什么的解释。 我想了解该消息,而不是如何修复特定实例。

我明白__strong意味着我将拥有该对象。 例如:

info = [ADMCoreFactory newServiceInfoWithURI:[queue uri]];

在这种情况下,我收到警告,我从不兼容的类型'ADMCoreFactory *'分配'__strong id <ADMServiceInfo>'

这是否意味着ADMCoreFactory需要“拥有”该对象,而我的id <ADMServiceInfo>对象需要是弱引用?

这是头文件中的方法声明:

+ (id<ADMServiceInfo>)newServiceInfoWithURI:(NSString *)anURI; 
'__strong id<ADMServiceInfo>' from incompatible type 'ADMCoreFactory *'

这告诉您ADMCoreFactory不符合ADMServiceInfo协议,因此您无法将其分配给该类型的变量。 __strong这里有点红鲱鱼。 它在技术上属于该类型的一部分,但在这种情况下它不是重要的部分。

您可能期望+newServiceInfoWithURI:返回除ADMCoreFactory之外的其他类型,在这种情况下您可能错误地声明了它。 确保没有发出其他警告。 在ObjC代码中你应该没有任何警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM