CGAffineTransformInvert: matrice singulière Erreur
J'ai créé App Universelle (une seule vue) dans Xcode. Parce que je veux avoir iAd
bannière sur chaque vue, j'ai ajouté ce code pour AppDelegate
fichier:
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
}
Réel sur iPhone (iOS 8) Tout fonctionne très bien (bannière apparaît sur chaque vue) mais j'obtiens cette erreur:
<Error>: CGAffineTransformInvert: singular matrix.
Si j'essaie d'exécuter cette application sur Simulateur (iOS 8), le comportement est le même. Tout fonctionne bien, je reçois le même message d'erreur mais en plus je obtenir: *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}*
Mais j'ai délégué et j'ai mis en place didFailToReceiveAdWithError
. Sur iPhone réel, il fonctionne...
Ma question est comment pourrais-je résoudre ces deux erreurs?
OriginalL'auteur André | 2014-09-14
Vous devez vous connecter pour publier un commentaire.
La cause la plus probable est que l'un des rectangles ici, c'est zéro. Vous ne pouvez pas inverser un zéro de la matrice (qui est un détail technique, et vous ne devriez vraiment pas besoin de s'inquiéter; je suis juste en train de dire pourquoi c'est l'erreur que vous obtenez).
application(didFinishLaunchingWithOptions:)
est appelé très tôt, et les images ne sont probablement pas encore fixé. Vous voulez probablement faire ce travail dans laviewDidLoad
(éventuellement la fixation de cadres dansviewWillAppear
si nécessaire) de la racine de votre vue-contrôleur (vous aurez probablement besoin de créer une sous-classe pour que, si vous n'en avez pas déjà un).OriginalL'auteur Rob Napier
Ajouter à votre viewController classe.. remplacer adBanner avec quel que soit votre bannière nom de la propriété est
OriginalL'auteur 4GetFullOf