小编And*_*dré的帖子

CGAffineTransformInvert:奇异矩阵错误

我在Xcode中创建了Universal App(单一视图).因为我想iAd在每个视图上都有横幅,我将此代码添加到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
}
Run Code Online (Sandbox Code Playgroud)

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

<Error>: CGAffineTransformInvert: singular matrix.
Run Code Online (Sandbox Code Playgroud)

如果我尝试在模拟器(iOS 8)上运行此应用程序,行为是相同的.一切正常,我得到相同的错误,但我得到:*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, …
Run Code Online (Sandbox Code Playgroud)

ios iad swift swift2

10
推荐指数
1
解决办法
1万
查看次数

用fireDate初始化的NSTimer不会触发

我试图用NSTimer一个方法调用,但它不起作用.我需要在特定的日期和时间运行一次这个方法,用户在日历上设置.

我的方法中有这个代码viewDidLoad:

NSDateComponents *comps = [[NSDateComponents alloc] init];

[comps setDay:24];
[comps setMonth:10];
[comps setYear:2011];

[comps setHour:23];
[comps setMinute:11];
[comps setSecond:0];


NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
schedulerTimer=[[NSTimer alloc] initWithFireDate:date interval:0 target:self selector:@selector(recordByScheduler:) userInfo:nil repeats:false];
Run Code Online (Sandbox Code Playgroud)

但是这段代码什么也没做.可能我误解了NSCalendar.我该怎么办?第二个问题:NSTimer当应用程序在后台运行时被触发?

cocoa objective-c nstimer

3
推荐指数
1
解决办法
1285
查看次数

NSMutableArray上的performSelector错误

您好,我在NSMutableArray上使用performSelector有一个棘手的问题.我有可能误解了performSelector的作用.基本上我有NSMutableArray与对象(所有这些都是基于我的类的对象,它继承自UIButton,但这并不重要,我猜)我需要向数组中的所有对象发送消息.

在我的类的头文件中,我已经声明了函数,它由selector调用.它看起来像这样:

-(void)scaleChangedWithANumber:(NSNumber *)scale;
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我的数组包含3个对象.如果我逐项称呼它们,它的工作原理很完美:

NSNumber *tmpNumber=[NSNumber numberWithFloat:scale];


ButtonOfElement *tmpButton1=[elementsButtonContainer objectAtIndex:0];
[tmpButton1 performSelector:@selector(scaleChangedWithANumber:) withObject:tmpNumber];

ButtonOfElement *tmpButton2=[elementsButtonContainer objectAtIndex:1];
[tmpButton2 performSelector:@selector(scaleChangedWithANumber:) withObject:tmpNumber];

ButtonOfElement *tmpButton3=[elementsButtonContainer objectAtIndex:2];
[tmpButton3 performSelector:@selector(scaleChangedWithANumber:) withObject:tmpNumber];
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试在数组上调用performSelector(我需要向数组中的所有对象发送消息):

NSNumber *tmpNumber=[NSNumber numberWithFloat:scale];
[elementsButtonContainer performSelector:@selector(scaleChangedWithANumber:) withObject:tmpNumber];
tmpNumber=nil;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

[__NSArrayM scaleChangedWithANumber:]: unrecognized selector sent to instance 0x1737f0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM scaleChangedWithANumber:]: unrecognized selector sent to instance 0x1737f0'
*** First throw call stack:
(0x34e456c3 0x370be97f 0x34e49227 0x34e47951 0x34d9f468 0x31d1 0x369a70eb 0x369a7447 0x369324d9 0x368f9c0d 0x36ae5649 0x3681df4f 0x3681c9b3 0x3682791f 0x368274eb …
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray performselector

1
推荐指数
1
解决办法
1998
查看次数