为压倒选民,我花了几天时间通过测试我能找到和想到的一切来找到解决方案。如果它是一个非常简单的答案或重复的内容,请给我指出,因为我没有找到任何有帮助的东西。或指出如何改善这个问题。
在我的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:
pod 'Firebase/Messaging'
添加到pod文件中。pod install
@import Firebase
[FIRApp configure];
突然之间,颜色再次被识别。怎么可能呢?