发送参数的方法 - NSTimeInterval

问题描述:

我想一个NSTimeInterval送入将从在后台线程上运行的方法,在主线程上运行的方法。不幸的是,我得到这个错误:发送参数的方法 - NSTimeInterval

Sending 'NSTimeInterval' (aka 'double') to parameter of incompatible type 'id' 

这是我的代码 - 任何想法发生了什么错?

首先,我安装我的NSTimerInterval,并调用performSelectorOnMainThread:

NSTimeInterval delayBetweenIntAdsNSTimeInterval = [responseStringTimeBetweenAds doubleValue]; 
[self performSelectorOnMainThread:@selector(startTimerForAds:) withObject:delayBetweenIntAdsNSTimeInterval waitUntilDone:NO]; 

,这里是我的方法的代码我打电话:

-(void)startTimerForAds:(NSTimeInterval)intervalBetweenAds { 
} 

上做什么用的是走错了任何的想法?

感谢,

UPDATE

我打电话:

[self performSelectorOnMainThread:@selector(startTimerForAds:) withObject:@(delayBetweenIntAds) waitUntilDone:NO]; 

这里是方法:

-(void)startTimerForAds:(NSInteger *)intervalBetweenIntAdsInteger { 
} 

但在该呼叫(在对象), XCode显示:

Illegal type 'NSInteger *' (aka 'int *') used in a boxed expression 

,它显示了在[intervalBetweenIntAdsInteger的doubleValue]:

Bad receiver type 'NSInteger *' (aka 'int *') 
+0

什么responseStringTimeBetweenAds?串? – 2013-03-27 20:18:22

+0

是,responseStringTimeBetweenAds是在一个整数的字符串,所以我用的doubleValue到整数转换为双 – 2013-03-27 20:19:34

+0

NSTimeInterval是不是一个对象。试试NSNumber。 – 2013-03-27 20:21:13

NSTimeInterval不是一个对象。尝试的NSNumber,应该这样做:

NSTimeInterval delayBetweenIntAdsNSTimeInterval = [responseStringTimeBetweenAds doubleValue]; 
[self performSelectorOnMainThread:@selector(startTimerForAds:) withObject:@(delayBetweenIntAdsNSTimeInterval) waitUntilDone:NO]; 


-(void)startTimerForAds:(NSNumber *)intervalBetweenAds { 

    NSTimeInterval i = [intervalBetweenAds doubleValue]; 

} 

因为你更新的更新:

[self performSelectorOnMainThread:@selector(startTimerForAds:) withObject:@(delayBetweenIntAds) waitUntilDone:NO]; 

-(void)startTimerForAds:(NSNumber *)intervalBetweenAds { 
    int i = [intervalBetweenAds intValue]; 
} 
+0

@DigiMong - 这现在不工作,当我将其更改为NSIntegers - 只需更新原始问题与附加位 – 2013-03-27 20:47:31

+0

现在更新.... – 2013-03-27 20:51:45

+0

我更新了我的答案 – 2013-03-27 21:00:20