此代码在 Xcode 6.2 和 6.3 之间没有更改,但包含[self alloc]
now 的行会导致错误:
Multiple methods named 'initWithType:' found with mismatched result, parameter type or attributes
@implementation AGNetworkDataRequest
+ (instancetype)networkDataRequestWithType:(AGNetworkDataRequestType)type
{
AGNetworkDataRequest *r = [[self alloc] initWithType:type];//error here
return r;
}
- (id)initWithType:(AGNetworkDataRequestType)type
{
//typical init code
}
//...
如果我 Cmd+clickinitWithType:
调用,我会在 中显示冲突CAEmitterBehavior
,这是我们项目中根本没有引用的对象,但我猜在 iOS 8.3 中一定是新的。
如果我将 更改[self alloc]
为[AGNetworkRequest alloc]
,继承此方法的子类将只返回父对象,这与我们设计此类的方式相反。
有什么方法可以在不更改方法名称的情况下消除冲突(这需要更改整个应用程序中的所有方法调用)?