发送参数的方法 - 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 *')
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];
}
@DigiMong - 这现在不工作,当我将其更改为NSIntegers - 只需更新原始问题与附加位 – 2013-03-27 20:47:31
现在更新.... – 2013-03-27 20:51:45
我更新了我的答案 – 2013-03-27 21:00:20
什么responseStringTimeBetweenAds?串? – 2013-03-27 20:18:22
是,responseStringTimeBetweenAds是在一个整数的字符串,所以我用的doubleValue到整数转换为双 – 2013-03-27 20:19:34
NSTimeInterval是不是一个对象。试试NSNumber。 – 2013-03-27 20:21:13