无法识别的选择器发送到实例”问题

2024-03-20

我的代码在途中的某个地方发生了故障,并且在使用导航栏按钮时崩溃了。

错误信息:*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView newMemoViewController:didAddMemo:]: unrecognized selector sent to instance 0x5b55a60'

调试时,程序确实运行cancel方法,并抛出异常@synthesize线。但是,我看不出有什么问题。

症状是相同的,因此我仅包含相关代码Cancel button:

NewMemoViewController.h

#import <UIKit/UIKit.h>
@protocol NewMemoDelegate;


@class AKVoiceMemo;


@interface NewMemoViewController : UIViewController {
    @private
        AKVoiceMemo *voiceMemo;
        id <NewMemoDelegate> delegate;
}

@property (nonatomic, retain) AKVoiceMemo *voiceMemo;
@property (nonatomic, assign) id <NewMemoDelegate> delegate;

@end

@protocol NewMemoDelegate <NSObject>
- (void)newMemoViewController:(NewMemoViewController *)newMemoViewController didAddMemo:(AKVoiceMemo *)voiceMemo;


@end

NewMemoViewController.m

#import "NewMemoViewController.h"

@synthesize delegate;


- (void)viewDidLoad {
    UIBarButtonItem *cancelButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];
    self.navigationItem.leftBarButtonItem = cancelButtonItem;
    [cancelButtonItem release];
}


- (void)cancel {
    [self.delegate newMemoViewController:self didAddMemo:nil];
}

我们将不胜感激您的帮助。

Edit: 代表是RootViewController:

- (void)newMemoViewController:(NewMemoViewController *)newMemoViewController didAddMemo:(AKVoiceMemo *)voiceMemo {
    if (voiceMemo){
        // Show the note in a new view controller
        // TODO: Implement this
    }

    [self dismissModalViewControllerAnimated:YES];
}

您可能正在设置代表NewMemoViewController to a UIView对象而不是实现该对象的对象NewMemoDelegate协议。

错误消息告诉您newMemoViewController:didAddMemo:消息已发送至UIView对象和UIView对象不知道如何处理它。自从你的cancel方法调用newMemoViewController:didAddMemo:在代表上,它是delegate哪一个是UIView无法识别的对象newMemoViewController:didAddMemo:信息。换句话说,您的代表是UIView并且它没有实现NewMemoDelegate协议。

如果您正确设置委托,那么 @jtbandes 提出了一个很好的观点:委托可能正在被释放并且UIView对象正在接管相同的内存位置,从而意外地“成为”委托。您正在做正确的事情,使用assign您的代表的属性;这是相当标准的可可实践。但是,您确实需要确保委托由另一个对象保留,并且that对象需要确保委托一直存在NewMemoViewController需要它。

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

无法识别的选择器发送到实例”问题 的相关文章

  • 我应该在我的 iOS Objective-C 项目中使用它吗?

    Xcode 中的 构建设置 中的 Mach O 类型是什么 应该设置什么 它有这些选项 可执行文件 动态库 捆绑包 静态库 可重定位对象文件 自从我将其从可执行文件更改为静态库以来 我遇到了错误 Apple Mach O 链接器错误组 我的
  • 检查 UITableViewCell 是否完全可见

    如何检查 UITableViewCell 在屏幕上是否完全可见 不被选项卡或导航栏切断 我可以使用以下代码获取可见单元格 NSArray indexes tableView indexPathsForVisibleRows 但我想排除屏幕中
  • 将 CFIndex 转换为 NSUInteger?

    我如何转换typedef signed long CFIndex to typedef unsigned int NSUInteger 如果我使用一个可以吗 CFIndex作为类型的参数NSUInteger 我还没有铸造它 编译者似乎也不介
  • 获得 IAP 产品响应后出现 Objective-C 错误

    此代码来自 Phonegap 代码 IAP 插件 错误发生在 发送的js 之后的代码行上 除了最后一个 nil 之外 发送到该函数的所有元素均非零 我什至将它们注销以确保它们已发送 该代码直接来自插件 https github com us
  • iOS 上的多个 HTTP 请求与单个 TCP 连接

    我正在开发一个 iPhone 应用程序 它使用我控制的基于 Web 的 API 连接到持续打开的 TCP 端口并通过 TCP API 发出请求 或者为我想要获取的所有数据发出新的 HTTP 请求 会更快或更高效吗 我认为差异可以忽略不计 但
  • iPhone表情插入MySQL却变成空值

    我们正在开发一个 iPhone 应用程序 它将表情符号从 iPhone 发送到服务器端 PHP 并插入到 MySQL 表中 我正在做服务器端的工作 但是insert语句执行成功后 插入的值变成空了 我可以正确插入字段 varchar 的是文
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接
  • 在 UICollectionView 下面插入子视图

    当我在 UICollectionView 下方添加子视图时 有时子视图会显示在 UICollectionView 单元格上方 这是子视图插入代码 self collectionView insertSubview self garmentV
  • 子视图的子层与更高的子视图重叠

    我有一个问题 我正在创建一个UIView这是从方法返回的 这部分很好 但我注意到 当我将子层添加到其中一个子视图时 这些层与子层添加的层次结构中较高的子视图 textView 和 imageView 重叠到testViewCopy出现在这些
  • 永远不会在 ios 的 google API 中获取上传数据进度

    我在我的应用程序中使用 Google Drive API 从我的应用程序上传文件 到目前为止 我成功了 并找到了上传所有类型文件的良好结果 我跟着谷歌示例 https developers google com drive examples
  • UIView 和 UITableView 中的 UITapGestureRecognizer 冲突

    我有一个UIView我在其中添加了一个UITapGestureRecognizer 在该视图中 我还有一个子视图 其中基本上是某种UITableView 问题是为什么不UITableView识别连续点击 而是始终转到点击手势识别器的处理程序
  • 使用 iOS swift AVPlayer 在横向模式下不全屏

    我将视频视图设置为全屏 然而 在模拟器中玩时 它并没有全屏运行 此问题仅适用于 iPad 不适用于 iPhone 这是我的代码 override func viewDidAppear animated Bool super viewDidA
  • 方法调用中的插入符[重复]

    这个问题在这里已经有答案了 我正在阅读本教程 并遇到了这行代码 这让我感到困惑 localSearch startWithCompletionHandler MKLocalSearchResponse response NSError er
  • Objective-C++ 中的 boost::shared_ptr

    这是对我之前提出的一个问题的更好理解 我有以下 Objective C 对象 interface OCPP MyCppobj cppobj end implementation OCPP OCPP init cppobj new MyCpp
  • 将 Xcode 4.5 新 XIB 文件恢复到 iOS<6

    我已经安装了Xcode 4 5 with iOS6 SDK以及其他用于测试目的的旧 SDK 从 4 3 到 6 0 很美 但是有一个BIG问题 生成一个新的 XIB 文件以兼容 iOS6 这是一个问题 因为我的应用程序需要运行在旧设备 不只
  • 如何将 NSDate 转换为 NSString?

    我想将 NSDate 转换为 NSString 这怎么可能 我尝试了这个 但它不起作用 它正在生成异常 NSString dateToString NSString alloc initWithFormat NSString dateObj
  • 如何通过我的 ios 应用程序的指示打开苹果地图应用程序

    我的目标是从 ios 应用程序打开带有方向的地图应用程序 我可以打开地图应用程序 但它没有显示方向 我编写的代码如下 NSString mystr NSString alloc initWithFormat http maps apple
  • 禁用 iPhone 4S / 新 iPad 键盘上的听写按钮

    我们的应用程序是一个医疗保健应用程序 我们的应用程序中有一个符合 HIPAA 标准的语音识别器 所有听写都可以通过它进行 医院不希望医生意外开始与不符合 HIPAA 标准的 Nuance Dragon 服务器进行对话 因此 我正在寻找可以抑
  • 延迟图像下载完成后更新 UITableViewCell

    异步下载单元格图像后 我在更新 UITableViewCells 时遇到一些问题 我正在使用自定义 UITableViewCells 如下所示 UITableViewCell tableView UITableView tableView
  • 如何设置仅适用于 iPhone 或 iPad 的视口?

    我有一个网站 需要在 iphone 上使用 0 3 的视口值 但在 ipad 上使用 0 7 有没有办法只为 iPhone 或 iPad 设置视口 这是一种解决方案

随机推荐

  • 绝对值的 SUMIF

    我有一个电子表格 其值如下 A B 10 55 x 10 05 0 55 x 7 55 88 50 x 我想要所有行的绝对总和x in B 我可以得到 x 行的总和 SUMIF B2 B100 x A2 A100 以及所有 A 列的绝对总和
  • 无法构建 gem 本机扩展 — Rails 安装

    我一直根据 edX 在线课程的说明安装 Ruby on Rails 以下是终端命令的列表 以及相关的相应输出 sudo apt get install ruby1 9 1 安装成功 wget http production cf rubyg
  • Javascript:检查重复打开的窗口

    是否可以检查同一窗口是否已打开 例如我通过 javascript 打开了一个窗口 我可以通过javascript检查它是否在另一个页面上打开吗 只是想关注已打开的页面以避免重复窗口 谢谢 Look at window open 方法 您必须
  • python 中缺少 lxml 模块?

    我想用Python docx处理word文件的库 Adocx py参考lxml 正如我假设的那样 from lxml import etree 当我启动脚本时 出现错误 No module named lxml 这是标准库吗 那么为什么没有
  • 使用版本控制同步 sftp 文件系统

    我最近开始为一个大学社团管理一个 小型 网站 显然 根据最后一个管理它的人的说法 访问该网站文件的方式是通过 SFTP 我使用 Linux Mint Nautilus 所以这没有问题 不过 我还有一个本地副本 可以在上传之前使用 Apach
  • 如何比较两个字符串的值是否相等,最好的方法是什么? [复制]

    这个问题在这里已经有答案了 总是对这个东西很困惑 有人可以帮忙吗 string1 equals string2 就是这样 它返回true if string1等于string2在价值上 否则会返回false 等于参考 http downlo
  • 如何在Acumatica发票报表(AR.64.10.00)中进行金额字段的文字表示?

    如何在Acumatica发票报表 AR 64 10 00 中进行金额字段的文字表示 在 DAC 扩展中创建一个未绑定字段ARInvoice数模转换器 并使用PX Objects AP ToWords属性 public class ARInv
  • 什么是 @RecentlyNonNull 注释?

    我正在 Android Studio 上进行代码检查 弹出以下警告 Probable bugs NotNull Nullable problems Not annotated method overrides method annotate
  • IntelliJ 12 中未识别 Struts2 标签库

    我一直在尝试一切让 IntelliJ 允许使用 Struts2 taglib 但它还是不断抱怨 IDE 中显示的错误是 无法解析 uri struts tags 我从头开始建立了一个新项目 并包含了 struts2 方面 将 struts
  • 键入提示 PyCharm 内部使用的类[重复]

    这个问题在这里已经有答案了 如何在其内部正确键入一个类 在 PyCharm 中 我当前收到此错误 这是一个未解决的参考错误 这通常是有道理的 因为我不希望 PyCharm 完美支持类型 但是 当我在除课程之外的其他课程中使用它时Item类本
  • twitter bootstrap datepicker 国际化

    我正在用这个来自 Stefan Petre 的 twitter bootstrap 风格日期选择器 http www eyecon ro bootstrap datepicker 但是 我不知道如何将日期选择器的格式设置为法语 除了直接从源
  • 为什么 Clang 不附带标准库头?

    我从下载了 Clang 3 6 2这个网站 http llvm org releases download html我正在尝试在 Windows 下使用 Code Blocks 进行设置 不幸的是 它无法编译一个简单的 hello worl
  • 使用 numpy 将 csv 加载到二维矩阵中进行绘图

    鉴于此 CSV 文件 A B C D E F timestamp 611 88243 9089 5601 5133 0 864 07514 1715 37476 765 22777 1 291111964948E12 611 88243 9
  • 无法将 Windows Phone 应用程序部署到模拟器。错误 DEP 6100 和 6200

    我创建新的默认项目 Window Phone 然后使用模拟器 Window Phone 运行它 但无论模拟器如何启动 它都不起作用 我使用 Window 8 1 64 位和 Visual Studio Professional 2013 U
  • CodeIgniter 上传大文件

    我已经设置了 codeigniter 来上传 function stage1 ini set upload max filesize 200M ini set post max size 200M ini set max input tim
  • 如何在Linux上为JNI应用程序编译动态库?

    我在用着乌班图10 10 这就是我所做的 你好 java class Hello public native void sayHello static System loadLibrary hellolib public static vo
  • Asp.Net 分页最佳实践

    我正在使用 linq to sql 来获取数据 当我在数据网格上设置页面大小并且用户选择第 2 页时 我会收到回发并重新读取所有数据以显示第二页 我怀疑应该有一种更好的方法来做到这一点 一种最终只读取我需要显示的数据的方法 我想知道是否有任
  • 在 Flask render_template 期间使用相对路径找不到 Javascript 文件 [重复]

    这个问题在这里已经有答案了 我正在使用 Python 和 Flask 构建一个简单的交互 Web 应用程序 使用 Chrome 在 localhost 5000 上进行测试 我有一个模板和一个关联的 javascript 文件 位于 模板
  • 为什么 Eclipse 在实现 Java 接口方法时不包含注释?

    界面如下 import javax xml ws Action public interface AnnotationsTestInterface Action public void annotatedMethod 和一个实现类 publ
  • 无法识别的选择器发送到实例”问题

    我的代码在途中的某个地方发生了故障 并且在使用导航栏按钮时崩溃了 错误信息 Terminating app due to uncaught exception NSInvalidArgumentException reason UIView