0

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

我了解 __strong 意味着我将拥有该对象。例如:

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

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

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

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

+ (id<ADMServiceInfo>)newServiceInfoWithURI:(NSString *)anURI; 
4

1 回答 1

2
'__strong id<ADMServiceInfo>' from incompatible type 'ADMCoreFactory *'

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

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

于 2013-07-16T16:15:19.860 回答