问题标签 [unrecognized-selector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
11535 浏览

objective-c - 从库调用类别方法时“发送到类的无法识别的选择器”

问题

这个问题可能看起来有点长,但我尽量提供尽可能多的信息,因为我真的对此感到困惑。

我目前正在开发一个应该自动解析 XML 文档的库。但是我现在第一次测试这个库时遇到了一个问题。

我有一个名为的库类CSXDocumentLayout,它代表文档的布局。此类包含- (NSError *)readLayoutDocument:(NSString *)fpath从 init 方法调用的私有方法。

此方法将读入表示其他 XML 文档布局的 XML 文档。它由CSXXMLParser我要测试的类解析。

我创建了一个代表布局文档的对象+[CSXDocumentLayout layoutDocumentLayout]。这个方法在类中实现CSXDocumentLayout (CSXLayoutObject)

下面是我的测试文件:

此文件编译为链接到我的静态库libceasyxml.a的单独可执行文件。一切都编译得很好,没有任何警告。

但是当我运行它时,我得到一个无法识别的选择器发送到类异常:

我发现我不能调用类方法非常令人不安+[CSXDocumentLayout(CSXLayoutObject) layoutDocumentLayout],尽管我可以同时调用-[CSXDocumentLayout initWithLayoutDocument:error:], 和-[CSXDocumentLayout(Private) readLayoutDocument:].

研究

我通过运行检查了该方法是否在输出文件中定义nm file,并且部分是:

在 libceasyxml.a 中定义(nm libceasyxml.a)

在 TestApp 中,它没有定义(nm TestApp),实际上我找不到任何具有类别名称的方法CSXLayoutObject

0 投票
2 回答
8476 浏览

objective-c - 静态iOS库中无法识别的选择器调用类别方法

我正在使用一些第三方软件来帮助使用 Xcode 4.3.2 编写 iPad 应用程序。该软件是开源的,通常经过设置,因此其代码将与开发人员为应用程序编写的任何代码一起编译。因为我在很多地方都在使用该软件,所以我决定将它构建为 iOS 模拟器的静态库。

我能够构建库,并将一个应用程序转换为链接到该库,而不是编译原始源代码。但是,当我在模拟器上运行应用程序时,我收到一条错误消息,提示unrecognized selector sent to instance

我已经验证该程序已成功使用部分静态库。但是,有一段代码尝试调用对象上的方法,并且发生故障。被调用的方法实际上并未在该对象的接口中定义。相反,它是在为该对象的类定义类别的附加模块中提供的。该模块的头文件已正确包含,编译器应该能够找到类别方法并将其应用于对象,但在运行时,出现上述错误。

我使用“nm”命令来验证静态库中是否存在类别方法。以下是输出示例:

人们对如何使这个库与所需的应用程序正常工作有什么想法?

0 投票
1 回答
959 浏览

iphone - 应用程序仅由一位用户在启动时崩溃

我试图弄清楚为什么我的应用程序在用户 iphone 3GS 上启动后立即崩溃。他似乎是唯一一个有这个问题的人。任何人都可以使用它。他的 iPhone 已越狱。我的应用程序来自 AppStore。我也使用安全模式:没有变化。

他给我发了一个崩溃日志和一个系统日志:

系统日志:

它的接缝崩溃:

但我不知道为什么。有人可以帮忙吗?

0 投票
3 回答
751 浏览

iphone - 使用 UIImageWriteToSavedPhotosAlbum 保存图像时出现无法识别的选择器错误

一个 UILongPressGestureRecognizer 被添加到我的 imageView 中,并带有动作句柄LongPressOnPhotos。最相关的代码如下:

单击操作表上的“保存照片”按钮时,出现错误消息:-[UILongPressGestureRecognizer image]: unrecognized selector sent to instance 0x21c2a0 代码有问题吗?提前致谢!

0 投票
3 回答
1397 浏览

objective-c - 将对象添加到 NSMutableArray 属性会因无法识别的选择器而崩溃?

当我尝试将对象添加到 NSMutableArray 时,我在这里收到“-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x10dd15ee0”。我不确定为什么。

我有一组嵌套的自定义类。WTEvent 有一个名为 mats 的 NSMutableArray 属性,它由 WTMat 对象组成。mats 有一个称为 bouts 的 WTBout 对象的 NSMutableArray。

我希望能够在回合中更新一个回合,而让其余回合保持不变。在这里,我找到了需要分配回合的垫子。如果它没有初始化,我初始化它。然后,如果它是空的,我尝试向它添加一个 newBout,它会崩溃。

我不应该像这样更改 NSMutableArray 的元素吗?

WTMat.h:

日志:

0 投票
1 回答
2490 浏览

iphone - UIDeviceRGBColor getRed:green:blue:alpha - unrecognized selector, not due to memory management

I solved my problem by using CGColorGetComponents, but I would like to understand exactly what was the reason.

I was doing the following with an instance of UIColor *firstColour :

This was working perfectly fine on simulator. Then I tested it on my device, and got this error :

UIDeviceRGBColor getRed:green:blue:alpha unrecognized selector sent to instance

After some research on the Internet I found that UIColor is actually replaced by subclasses, like UIDeviceRGBColor. Fine, but shouldn't subclasses work just like UIColor and accept (at least) the same methods ?

I enabled Zombie but apparently this wasn't a memory management issue, like most people say on forums. And I can't find documentation for UIDeviceRGBColor so I don't know how it is supposed to behave. Does someone know why it happened, and above all, if this is likely to happen again with another method ?

Thank you.

0 投票
3 回答
5807 浏览

ios - 使用推文创建 NSDictionary 时“将无法识别的选择器发送到实例”

我正在 Twitter 上搜索带有此代码的推文:

tweets 变量是一个 NSArray,我正在尝试使用以下代码将其放入 NSDictionary:

我肯定会得到推文的 JSON 文本,但是当我尝试将它们添加到字典中以便最终将它们放入表中时,我收到“无法识别的选择器发送到实例”错误。

我不知道为什么我会得到这个,任何帮助都将不胜感激。

0 投票
2 回答
5573 浏览

objective-c - [__NSCFType searchKeyword:]:无法识别的选择器发送到实例 0x6d8eb80

以下代码是从情节提要向当前视图添加子视图:

在视图“view1”中,有一个 textField。以下是文本字段的 IBAction,事件是“退出时结束”。

以下是错误信息。

2012-05-26 20:26:47.369 OnlineBooking[6607:f803]-[__NSCFType searchKeyword:]:无法识别的选择器发送到实例 0x6d8eb80

2012-05-26 20:26:47.369 OnlineBooking[6607:f803] * WebKit 在 webView 中丢弃了一个未捕获的异常:shouldInsertText:replacingDOMRange:givenAction: delegate: -[__NSCFType searchKeyword:]: 无法识别的选择器发送到实例 0x6d8eb80

0 投票
1 回答
2380 浏览

core-data - [__NSCFSet 实体]:将新的 nsmanegedobject 插入到一对多关系时无法识别选择器

我正在向 Account 实例添加一个 Chore 对象的新实例。它们都是 NSManagedObjects,从 Account 到 Chore 的关系是“一对多”关系。

帐户实例在运行时有效,因为我可以向其插入其他对象,这些对象遵循与 chore 相同的关系规则(1 到多个),并且 chore 在调试器中也是有效的,因为帐户对象和 newChore 都有有效的内存地址。唯一的问题是给出的地址错误,因为 0x6d85cb0 与报告此错误时 newChore 和帐户的地址不同。0x06b74a70 for newChore 和 0x06d49700 for account,所以我不知道 0x6d85cb0 指的是什么。

这是代码行“[account addChoresObject:newChore];” 这会产生以下错误。

这是代码行 [account addChoresObject:newChore]; 产生以下错误。2012-05-31 10:19:05.440 分配[61436:fb03]-[__NSCFSet 实体]:无法识别的选择器发送到实例 0x6d85cb0 2012-05-31 10:19:05.441 分配[61436:fb03] *由于未捕获而终止应用程序异常“NSInvalidArgumentException”,原因:“-[__NSCFSet 实体]:无法识别的选择器发送到实例 0x6d85cb0”

这是生成错误的方法的代码。

这是 Account 类的接口,由 xcode 生成:

和杂项类是:

在我看来,选择器似乎发送到了错误的地址。我尝试使用 Clean 删除潜在的错误构建文件。在此之前我很难正确生成文件,因为生成的文件是用应用程序的名称调用的,而不是用类的名称调用的,而且一些源文件也有问题,这些文件会在 xcode 时崩溃试图自动生成 iboutlets 和 ibaction。我想知道是否有其他人对 xcode 有问题,如果重新安装它可以解决我的问题。

0 投票
1 回答
189 浏览

objective-c - 调试与无法识别的选择器相关的异常

我想知道你是否可以帮助我。

我想创建一种情况,如果用户在文本字段中输入特定文本 - 他们将被带到新视图。

我正在努力让它发挥作用 - 我使用以下代码来煽动这一点:

}

我已经使用相同的方法成功导航到代码中其他地方的不同屏幕(使用与 CorrectScreen *screen 中的三行相同的方法)我收到的错误消息是:

并且在添加异常断点时 - 绿色箭头停在以 [self presentModal....] 开头的行处,线程突出显示以下内容:

我真的不知道问题出在哪里。我的印象是,无法识别的选择器问题通常与未正确链接对象有关,但我确信我在这里已经完成了。

有没有人有任何想法?我现在有点卡住了,我相信有人可以提供帮助!

非常感谢!

安迪