关于ios:CGAffineTransformInvert:奇异矩阵错误 | 珊瑚贝

CGAffineTransformInvert: singular matrix Error


我在 Xcode 中创建了 Universal App(单一视图)。因为我想在每个视图上都有 iAd 横幅,所以我将此代码添加到 AppDelegate 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
    if var root = self.window?.rootViewController
    {
        let contentFrame = UIScreen.mainScreen().bounds
         var _banner = ADBannerView(adType: ADAdType.Banner)

        _banner.frame=CGRectMake(0, contentFrame.height – _banner.frame.height, _banner.frame.width, _banner.frame.height)
        _banner.delegate = self
        root.view.addSubview(_banner)
    }

    return true
}

在真正的 iPhone (iOS 8) 上一切正常(横幅出现在每个视图上)但我收到此错误:

1
<Error>: CGAffineTransformInvert: singular matrix.

如果我尝试在模拟器 (iOS 8) 上运行此应用程序,行为是相同的。一切正常,我得到同样的错误,但我得到:*ADBannerView:

1
2
3
4
 Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:):
 Error Domain=ADErrorDomain Code=7″The operation couldn’t be completed. Ad was unloaded from
this banner” UserInfo=0x7b83bf30 {ADInternalErrorCode=7, ADInternalErrorDomain=ADErrorDomain,
NSLocalizedFailureReason=Ad was unloaded from this banner}*

但是我有委托并且我实现了 didFailToReceiveAdWithError。在真正的 iPhone 上它可以工作…

我的问题是如何解决这两个特定错误?


最可能的原因是这里的矩形之一是零。你不能反转零矩阵(这是一个技术细节,你真的不应该关心;我只是想说为什么这是你得到的错误)。

application(didFinishLaunchingWithOptions:) 很早就被调用了,框架可能还没有设置。您可能希望在根视图控制器的 viewDidLoad 中进行这项工作(如果需要,可能修复 viewWillAppear 中的框架)(如果您还没有子类,您可能需要为此创建一个子类).

  • 感谢您的回答,但我遇到了这两个错误,我的代码放置在哪里并不重要(我尝试了 ViewDidLoad、ViewWillAppear 和 ViewDidAppear)。我尝试打印所有坐标,没有一个零值。所以我相信你,我不必关心它:)


将此添加到您的 viewController 类中。将 adBanner 替换为您的横幅属性名称

1
2
3
4
5
-(void)viewDidDisappear:(BOOL)animated{
    [adBanner removeFromSuperview];
    adBanner.delegate = nil;
    adBanner = nil;
}

来源:https://www.codenong.com/25837585/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_8779.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?