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

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(使用前将#替换为@)

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

  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • Objective-C – 拥有包含 TestFlight SDK 的 TestFlight 配置

    我已按照 TestFlight 的说明复制 发布 配置 我还使用 TestFlight SDK 从我的应用程序获取实时报告 通过这样做 我必须在我的应用程序中包含一些 TestFlight 代码 当然 我不想在我的应用程序的发布版本中包含此
  • UIPanGestureRecognizer 对坐标的限制

    我在主 UIView 中添加了一个子视图 称为panel 并且我向其中添加了gestureRecognizer 因为我希望它只能在Y轴上拖动并且只能在某些限制下 即160 300 超过300它不能拖动 我以这种方式实现了手势处理 IBAct
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 如何阻止 UITableView moveRowAt IndexPath 在重新排序时留下空白行

    我遇到一个问题 在重新排序 UITableViewCells 时 tableView 不随单元格滚动 仅出现一个空白行 任何后续滚动都会出现数组越界错误 堆栈跟踪中没有我的任何代码 这是该问题的快速视频 http www screencas
  • 从 robovm 项目创建 iOS 静态库(JNI 中的 BAD_ACCESS)

    我有大量的Java代码 只有计算函数 没有UI 我想在iOS中将其重用为静态库 我的方法是使用robovm http www robovm com并按照robovm论坛中两篇文章中描述的非官方方式创建静态库 1 基本方式 https gro
  • ABAddressBookCopyArrayOfAllPeople 中缺少联系人

    我试图从我的应用程序中的地址簿中查找电话号码 但很惊讶没有找到它 问题是 我已经在我的应用程序访问的控制台中打印了地址簿的所有号码 奇怪的是 有些联系人丢失了 我正在将输出与我的地址簿进行比较 虽然数量很少 但仍然如此 这就是我访问地址簿的
  • NSNotificationCenter 为“观察者”和“对象”保留什么类型的引用?

    任何人都可以澄清 阐明有关情况 NSNotificationCenter addObserver selector name object 观察者 和 对象 参数的通知中心保留哪些类型的引用 从通知中心删除观察者的最佳实践是什么 多线程应用
  • 使用 UITabBarController 时覆盖整个屏幕的视图?

    我想在 UITabBarController 设置中在整个屏幕上覆盖 HUD 样式的透明图形 执行此操作的按钮位于第一个选项卡的屏幕 FirstViewController 中 并且覆盖层也应该覆盖选项卡 这可能吗 您可以将新视图直接附加到
  • 当应用程序进入前台时,如何重新启动基于块的动画?

    我有以下基于块的动画 UIView animateWithDuration 0 5f delay 0 0f options UIViewAnimationOptionRepeat UIViewAnimationOptionAutorever
  • 将 iPad xib 转换为 iPhone xib

    我看过很多关于将 iPhone xib 转换为 iPad xib 的帖子和教程 但我想反过来做 我能找到的唯一资源是 将 iPad 应用程序转换为 iPhone https stackoverflow com questions 68550
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • 无法将项目添加到 NSMutableArray ivar

    我的目标是将字符串添加到数组中 并在我调用的方法中执行此操作 在这个方法中 我在数组中得到一个空值 但不知道为什么 我在课程开始时有这样的内容 NSMutableArray listOfEvents 以及我在每个事件上调用的方法 void
  • iPhone 上的语音识别

    我需要开发一个识别语音的 iPhone 应用程序 并根据结果执行进一步的任务 我知道iPhone 3 0不支持语音识别 我需要在服务器端实现语音识别软件 我只知道这个事情 因为我是新手 所以我不知道如何处理 意味着我需要购买哪些软件并在服务
  • UIViewController 内的 UIsearchController 使用自动布局

    有没有人成功实施过UIViewController其中包含两个UISearchController searchBar and a UItableView使用自动布局来布局所有内容 我正在尝试实现类似的目标1密码 https itunes
  • 使用强光混合模式时突出显示伪影

    我正在 iPhone 应用程序中使用顶部图像的 HardLight 混合模式混合两个图像 它看起来像这样 UIGraphicsBeginImageContext size sourceImage drawInRect rectangle b
  • 从超立方体图像中获取文本的确切位置

    使用 tesseract 中的 GetHOCRText 0 方法 我能够检索 html 中的文本 并在 webview 中呈现 html 时 我能够获取文本 但图像中文本的位置与输出不同 任何想法都非常有帮助 tesseract gt Se
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 绝对值的 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