Xcode 6.3/iOS 8.3 中的新增功能:使用自分配以方便构造函数会导致构建错误

2024-01-04

此代码在 Xcode 6.2 和 6.3 之间没有更改,但包含的行[self alloc]现在导致错误:

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+单击initWithType:打电话,我看到了冲突CAEmitterBehavior,我们的项目中根本没有引用这个对象,但我猜它一定是 iOS 8.3 中的新对象。

如果我改变[self alloc] to [AGNetworkRequest alloc],继承此方法的子类只会返回父对象,这与我们设计此类的方式相反。

有什么方法可以在不更改方法名称的情况下消除冲突(这需要更改整个应用程序中的所有方法调用)?


投射你的分配回报。

[(AGNetworkDataRequest*)[self alloc] initWithType:type];

这将为编译器提供足够的信息来进行调用。如果编译器不知道参数的长度,则调用有可能在运行时失败(并且可能很难调试)。

返回instancetype而不是id应该可以解决这个问题(allocWithZone将自动返回instancetype...),但这可能是因为您使用的是“self”,没有足够的静态信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xcode 6.3/iOS 8.3 中的新增功能:使用自分配以方便构造函数会导致构建错误 的相关文章

随机推荐

  • 我需要一个用于 Win/Linux 的二进制比较工具 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 首先 我不需要文本比较 因此 Beyond Compare 不能满足我的需要 我正在寻找一个可以在字节级别报告两个文件之间差异的实用程序
  • 我可以在没有公共 IP 的情况下为 Azure 虚拟机提供 Internet 访问权限吗?

    我在azure上有3个debian VM 其中一个有一个可以上网的公共IP VM 1 其他只有内部网络 VM 2 VM 3 我可以通过 VM 1 授予对 VM 2 或 VM 3 的访问权限吗 让我崩溃的是看到 VM 1 有 2 个网络接口
  • 制作 Laravel 集合的副本

    我正在尝试提供一份集合的副本users到一个雄辩的模型jobs 所以我实际上有 jobs 1 users 1 2 3 2 users 1 2 3 一旦我得到这个 我将对另一个查询中的一些数字进行求和 本质上为每个作业的每个用户提供一个总数
  • 使用 SQL 查询在 DB2 中插入 BLOB 数据

    我遇到了这样的情况 我需要通过从 DB2 Windows 7 上的 DB2 Express C 中的文件系统读取文件来将数据插入到 blob 列中 我在互联网上的某个地方找到了这个INSERT INTO VALUES readfile fi
  • Windows 身份验证混合

    我正在对 Intranet MVC 应用程序使用 Windows 身份验证 我想在身份验证过程中添加额外的逻辑 换句话说 用户除了存在于 AD 中之外 还必须存在于自定义数据库中才能进行身份验证 他们还应该注销 MVC 应用程序 然后使用相
  • RegexBuddy 的免费替代品 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何好的替代方案支持以不同风格编写正则表达式并允许您测试它们 以下是线程中提到的正则表达式工具的
  • 当使用 grunt 构建项目时,Fontawesome 无法工作

    我正在使用很棒的字体库字体 当项目不是用 grunt 构建 丑化时它可以工作 但是当我用 grunt 构建项目时 它不起作用 我在控制台中收到此错误 fonts fontawesome webfont woff v 4 0 3 404 未找
  • Visual Studio 2013团队项目已被删除

    在 vs 2013 中向源代码管理添加新的 Web 解决方案并首次签入后 我收到此错误 TF402484 The PROJECTNAME team project has been deleted Undo any pending chan
  • 将 JAX-WS 2.2.5 客户端与 JDK/JRE 1.5 结合使用

    Java 6 附带 JAX WS 2 0 据我所知 Java 5 并未附带 JAX WS 我能够将 JAX WS 2 2 5 与 Java 1 6 结合使用 通过使用Java认可的覆盖机制 https docs oracle com jav
  • PHP 生成的不完整时区列表

    我尝试生成中指定的完整时区集http php net manual en timezones php http php net manual en timezones php UTC 除外 使用以下代码 zones timezone ide
  • 如何在 Windows 上设置 Eclipse + StatET + Rcpp

    当我知道我可以使用 Rcpp 用 C 创建 R 包时 我感到很兴奋 并渴望了解它的开发环境 并感谢秋季统计博客 http blog fellstat com p 170 我可以使用 Eclipse 和 StatET 它的 R 插件 快速建立
  • 如何将 v-for 的值绑定到 v-if

    我正在使用 BootstrapVue 对于我的问题 我有一个v for在我的模板中有两个buttons 循环我的v for my v if不生成唯一的IDs单击一个按钮后 每个按钮都会被触发 from Open me to Close me
  • Heroku Godaddy 裸域 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个 Heroku 应用程序 并且添加了 CNAME www 到 herokuapp 以将其从 GoDaddy 重定向到 Heroku
  • 嵌套 VB (VBA) 枚举

    好吧 伙计们 我想实现嵌套枚举的效果 以便轻松对一些常量字符串进行分组 类似于下面的伪代码 Enum gKS Colby Hello Hays World end Enum Enum gMA Dodge Seven Muscatine Po
  • jQuery,未捕获的类型错误

    我的网页上有一些 javascript 代码 正在将一些 div 加载到页面上 我还想向每个 div 添加 onmouseenter 和 onmouseleave 事件处理程序 我正在使用 jquery 添加这些处理程序 但出现错误 对象
  • 在 WP 上使用 MvvmCross 拍摄图像并显示图像时出现问题

    我想用相机拍照并将其显示在我所在的页面上 所以我有一个 ViewModel 我可以在其中拍照并显示它 public class CamViewModel MvxViewModel IMvxServiceConsumer
  • Docker 运行 -p ?/? (这两个端口号是什么以及它们代表什么)

    我使用命令 docker run p 8080 8080 name my local image 但失败 提示无法在本地找到图像 8080 8080 最新 8080 8080 这两个端口到底代表什么 替换这个 p 8080 8080 这样
  • 在Mac上编译ARM .s文件

    我使用的是 Mac Os X 但在编译 s ARM 汇编文件时遇到问题 我的 s 文件是这样的 mov r0 r1 只是看看它是否有效 但当我这样做时arm elf as my s我得到一个a out文件 我愿意chmod x a out
  • 我们可以从 requirejs 中的模块导出多个非 AMD 函数吗?

    如果我有一个名为的非 AMD 模块old js在这个脚本中我有两个函数f1 and f2定义的 我需要使用它们 如何导出两者 require config paths jquery https ajax googleapis com aja
  • Xcode 6.3/iOS 8.3 中的新增功能:使用自分配以方便构造函数会导致构建错误

    此代码在 Xcode 6 2 和 6 3 之间没有更改 但包含的行 self alloc 现在导致错误 Multiple methods named initWithType found with mismatched result par