问题标签 [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.
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
。
objective-c - 静态iOS库中无法识别的选择器调用类别方法
我正在使用一些第三方软件来帮助使用 Xcode 4.3.2 编写 iPad 应用程序。该软件是开源的,通常经过设置,因此其代码将与开发人员为应用程序编写的任何代码一起编译。因为我在很多地方都在使用该软件,所以我决定将它构建为 iOS 模拟器的静态库。
我能够构建库,并将一个应用程序转换为链接到该库,而不是编译原始源代码。但是,当我在模拟器上运行应用程序时,我收到一条错误消息,提示unrecognized selector sent to instance。
我已经验证该程序已成功使用部分静态库。但是,有一段代码尝试调用对象上的方法,并且发生故障。被调用的方法实际上并未在该对象的接口中定义。相反,它是在为该对象的类定义类别的附加模块中提供的。该模块的头文件已正确包含,编译器应该能够找到类别方法并将其应用于对象,但在运行时,出现上述错误。
我使用“nm”命令来验证静态库中是否存在类别方法。以下是输出示例:
人们对如何使这个库与所需的应用程序正常工作有什么想法?
iphone - 应用程序仅由一位用户在启动时崩溃
我试图弄清楚为什么我的应用程序在用户 iphone 3GS 上启动后立即崩溃。他似乎是唯一一个有这个问题的人。任何人都可以使用它。他的 iPhone 已越狱。我的应用程序来自 AppStore。我也使用安全模式:没有变化。
他给我发了一个崩溃日志和一个系统日志:
系统日志:
它的接缝崩溃:
但我不知道为什么。有人可以帮忙吗?
iphone - 使用 UIImageWriteToSavedPhotosAlbum 保存图像时出现无法识别的选择器错误
一个 UILongPressGestureRecognizer 被添加到我的 imageView 中,并带有动作句柄LongPressOnPhotos。最相关的代码如下:
单击操作表上的“保存照片”按钮时,出现错误消息:-[UILongPressGestureRecognizer image]: unrecognized selector sent to instance 0x21c2a0 代码有问题吗?提前致谢!
objective-c - 将对象添加到 NSMutableArray 属性会因无法识别的选择器而崩溃?
当我尝试将对象添加到 NSMutableArray 时,我在这里收到“-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x10dd15ee0”。我不确定为什么。
我有一组嵌套的自定义类。WTEvent 有一个名为 mats 的 NSMutableArray 属性,它由 WTMat 对象组成。mats 有一个称为 bouts 的 WTBout 对象的 NSMutableArray。
我希望能够在回合中更新一个回合,而让其余回合保持不变。在这里,我找到了需要分配回合的垫子。如果它没有初始化,我初始化它。然后,如果它是空的,我尝试向它添加一个 newBout,它会崩溃。
我不应该像这样更改 NSMutableArray 的元素吗?
WTMat.h:
日志:
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.
ios - 使用推文创建 NSDictionary 时“将无法识别的选择器发送到实例”
我正在 Twitter 上搜索带有此代码的推文:
tweets 变量是一个 NSArray,我正在尝试使用以下代码将其放入 NSDictionary:
我肯定会得到推文的 JSON 文本,但是当我尝试将它们添加到字典中以便最终将它们放入表中时,我收到“无法识别的选择器发送到实例”错误。
我不知道为什么我会得到这个,任何帮助都将不胜感激。
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
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 有问题,如果重新安装它可以解决我的问题。
objective-c - 调试与无法识别的选择器相关的异常
我想知道你是否可以帮助我。
我想创建一种情况,如果用户在文本字段中输入特定文本 - 他们将被带到新视图。
我正在努力让它发挥作用 - 我使用以下代码来煽动这一点:
}
我已经使用相同的方法成功导航到代码中其他地方的不同屏幕(使用与 CorrectScreen *screen 中的三行相同的方法)我收到的错误消息是:
并且在添加异常断点时 - 绿色箭头停在以 [self presentModal....] 开头的行处,线程突出显示以下内容:
我真的不知道问题出在哪里。我的印象是,无法识别的选择器问题通常与未正确链接对象有关,但我确信我在这里已经完成了。
有没有人有任何想法?我现在有点卡住了,我相信有人可以提供帮助!
非常感谢!
安迪