ios - CGAffineTransformInvert: error de matriz singular
swift swift2 (2)
La causa más probable es que una de las recotaciones aquí sea cero. No puede invertir una matriz cero (que es un detalle técnico, y realmente no debería tener que preocuparse, solo intento decir por qué ese es el error que obtiene).
application(didFinishLaunchingWithOptions:)
se llama muy temprano, y los marcos probablemente aún no estén configurados. Probablemente desee hacer este trabajo en viewDidLoad
(posiblemente arreglando los marcos en viewWillAppear
si es necesario) de su controlador de vista raíz (probablemente necesite crear una subclase si aún no tiene uno).
Creé Universal App (vista única) en Xcode. Como quiero tener el banner de iAd
en cada vista, agregué este código al archivo de AppDelegate
:
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
}
En un iPhone real (iOS 8) Todo funciona bien (el banner aparece en todas las vistas) pero aparece este error:
<Error>: CGAffineTransformInvert: singular matrix.
Si trato de ejecutar esta aplicación en Simulator (iOS 8), el comportamiento es el mismo. Todo funciona bien, obtengo el mismo error pero además obtengo: * ADBannerView:
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}*
Pero tengo delegado e implementé didFailToReceiveAdWithError
. En el iPhone real, funciona ...
Mi pregunta es ¿cómo podría resolver estos dos errores en particular?
Agregue esto a su clase viewController ... reemplace adBanner con cualquier nombre de propiedad de su banner
-(void)viewDidDisappear:(BOOL)animated{
[adBanner removeFromSuperview];
adBanner.delegate = nil;
adBanner = nil;
}