我刚学习Objective C并遇到过这个问题。我创建了一个简单的经理类,如此
#import <Foundation/Foundation.h>
@interface PassManager : NSObject
- (void)isValidCredentials:(NSString *) username
withPassword:(NSString *) password
wasValid:(void(^)(BOOL success))handler;
@end
实施如下
#import "PassManager.h"
@implementation PassManager
- (void)isValidCredentials:(NSString *) username
withPassword:(NSString *) password
wasValid:(void(^)(BOOL success))handler
{
handler(true);
}
@end
这构建但在运行时我收到错误:
“2016-01-27 16:40:41.555 MessyApp [19395:897750] - [PassManager initWithConfiguration:]:无法识别的选择器发送到实例0x7fd12a413d30 2016-01-27 16:40:41.560 MessyApp [19395:897750] * **由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [PassManager initWithConfiguration:]:无法识别的选择器发送到实例0x7fd12a413d30'“。
我做错了什么?
答案 0 :(得分:0)
错误说明了一切,在您的代码中的某个地方,您在initWithConfiguration
上调用了PassManager
方法,但您在PassManager
课程中没有这种方法,所以它会引发异常。
添加方法并在PassManager
课程中实施,或者如果您想准确捕捉到这种情况发生的位置(并且不想搜索initWithConfiguration
的所有匹配项
您可以按Breakpoint Navigator
转到CMD+7
,然后在底部按下+
符号并添加Exception Breakpoint
,运行该应用并等待其触发
答案 1 :(得分:0)
在与原始用户2交谈后,他告诉我这是造成问题的其他原因。我正在使用一个名为Parse的库,它需要在appdelegate类中启动代码,而这正是爆炸的内容。一旦他告诉我,我看了看我做了什么,并意识到我创建了一个名为ParseManager的类,它导致某种名称冲突。我改变了这个类名,确定它们都开始工作了。我不好的问题我很害怕,但我是这个平台的新手