由于未捕获的异常NSInvalidArgumentException而终止了应用程序,无法识别的选择器已发送给类

时间:2019-05-30 10:44:23

标签: ios objective-c firebase

为压倒选民,我花了几天时间通过测试我能找到和想到的一切来找到解决方案。如果它是一个非常简单的答案或重复的内容,请给我指出,因为我没有找到任何有帮助的东西。或指出如何改善这个问题。


在我的AppDelegate.m中,当我尝试使用有问题的颜色时出现以下错误,并且崩溃并显示以下错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'+[UIColor xForegroundPrimaryColor]: unrecognized selector sent to class 0x1daf70518'

在AppDelegate.m中,我要导入以下声明颜色的文件。

#import "UIColor+X.h"

看起来像这样:

#import <UIKit/UIKit.h>

@interface UIColor (X)

+ (void)setXBackgroundColor:(UIColor *)bgColor foregroundPrimaryColor:(UIColor *)primaryColor foregroundSecondaryColor:(UIColor *)secondaryColor;
+ (UIColor *)xBackgroundColor;
+ (UIColor *)xForegroundPrimaryColor;
+ (UIColor *)xForegroundSecondaryColor;
@end

当我在这里尝试使用它时,它会崩溃:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //Appearance
    [[UIControl appearance] setTintColor:[UIColor xForegroundPrimaryColor]];
    ...
}

此文件及其兄弟.m在同一个工作区中的单独项目中,是否有所不同?

为什么Xcode在构建时不会抱怨这种颜色,但是在运行应用程序时却不存在?

这是从项目中删除Firebase之后开始发生的,在此之前它没有任何麻烦。

编辑

.m文件中的颜色声明如下:

+ (UIColor *)xForegroundPrimaryColor {
    if (primaryColor)
        return primaryColor;

    return [UIColor colorWithRed:(17.0/255.0) green:(67.0/255.0) blue:(103.0/255.0) alpha:1.0];
}

EDIT2

我只是尝试通过以下方式再次添加Firebase:

  1. pod 'Firebase/Messaging'添加到pod文件中。
  2. 有一个pod install
  3. 在AppDelegate.m中添加了@import Firebase
  4. 在didFinishLaunchingWithOptions中添加了[FIRApp configure];

突然之间,颜色再次被识别。怎么可能呢?

0 个答案:

没有答案