2

错误:

-[UICGColor encodeWithCoder:], /SourceCache/UIKit/UIKit-2372/UIColor.m:1191 2012-11-15 14:17:45.531 Neemu Clothes[15179:4d07] 中的断言失败,由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序, 原因:'只支持 RGBA 或 White 颜色空间,这种方法是 hack。' * First throw call stack: (0x363272a3 0x32afe97f 0x3632715d 0x37a492af 0x36c793c5 0x379ec00f 0x379eb8b5 0x36dac72d 0x36daba7b 0x3632462f 0x36dab7f5 0x36e895e5 0x36e17cd7 0x36e17b6d 0x3506890f 0x36e17a61 0x36e210d5 0x3505b83b 0x36e210b1 0x3505b11f 0x3505a99b 0x3505a895 0x35069215 0x350693b9 0x357f8a11 0x357f88a4) libc++abi.dylib: terminate called throwing an exception

代码:

BOOL displayedNativeDialog = [FBNativeDialogs presentShareDialogModallyFrom:self initialText:@"NeeemuG - Veja meu look." image:nil url:[NSURL URLWithString:@"https://www.neemu.com"] handler:^(FBNativeDialogResult result, NSError *error) {

        // Only show the error if it is not due to the dialog
        // not being supporte, i.e. code = 7, otherwise ignore
        // because our fallback will show the share view controller.
        if (error && [error code] == 7) {
            return;
        }

        NSString *alertText = @"";
        if (error) {
            alertText = [NSString stringWithFormat:
                         @"error: domain = %@, code = %d",
                         error.domain, error.code];
        } else if (result == FBNativeDialogResultSucceeded) {
            alertText = @"Posted successfully.";
        }
        if (![alertText isEqualToString:@""]) {
            // Show the result in an alert
            [[[UIAlertView alloc] initWithTitle:@"Result"
                                        message:alertText
                                       delegate:self
                              cancelButtonTitle:@"OK!"
                              otherButtonTitles:nil]
             show];
        }
    }];

    // Fallback, show the view controller that will post using me/feed
    if (!displayedNativeDialog) {
        NSLog(@"No IOS6.");
    }
4

4 回答 4

2

在我的代表中,我将 [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background"]] 放到背景导航栏,我不知道为什么会发生这种崩溃,但是当我删除解决问题时。

于 2012-11-23T14:21:26.103 回答
1

我有同样的问题,它似乎(显然)与方法 [UIColor colorWithPatternImage:image];

因此,我建议检查每个调用 colorWithPatternImage 的方法,并逐一注释调用该方法的每一行以找出来源。

就我而言,它是我的 AppDelegate 中 UIPageControl 上的 colorWithPatternImage。

很多问题都是关于这个问题的。示例:UIApperance 和各种崩溃iOS 6 MFMailComposeViewController:仅支持 RGBA 或白色空间,此方法是 hack

于 2014-11-19T16:33:21.773 回答
1

对我来说,这个错误是由 UITextField 和 UISwitch 的外观设置引起的。

我有一个抽象视图控制器子类,我的所有视图控制器都继承自该子类,因此我只是指定仅在从该视图控制器继承的视图中设置外观。

像这样:

[[UITextField appearanceWhenContainedIn:[BaseViewController class], nil] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bkg"]]];
[[UISwitch appearanceWhenContainedIn:[BaseViewController class], nil] setOnTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bkg"]]];
于 2015-11-08T11:41:20.777 回答
0

我有同样的问题,我通过子类化组件来解决这个问题。我的情况是:

UIColor *bkg = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bkg"]];
[[UICollectionView appearance] setBackgroundColor:bkg];

当我试图在 facebook 上发布一些东西时,我收到了错误,但后来我创建了简单的子类UICollectionView- 让我们命名它MyGridView。所以修改后我的代码是:

UIColor *bkg = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bkg"]];
[[MyGridView appearance] setBackgroundColor:bkg];

然后我更改了故事板中的视图以使用自定义组件类MyGridView而不是默认组件类,UICollectionView并且一切正常 - 我有我想要的背景并且能够在 facebook 上发布。

我认为如果您的问题与我的问题相似,您可以尝试这种方法和您需要的子类组件(当然,如果它们打算被子类化)。

此致

于 2013-07-29T12:50:28.813 回答