我正在練習一本教科書,而且這本書已經過時了,所以我有點想弄清楚它是如何適應新系統的。我已經得到了確切的文本,它的返回隱式轉換會丟失整數精度:'time_t'在Objective C中是什麼意思,我該如何解決它?
'Implicit conversion loses integer precision: 'time_t' (aka 'long') to 'unsigned int''.
本書是「可可規劃爲Mac OS X」由艾倫·希爾加斯,第三版,代碼爲:
#import "Foo.h"
@implementation Foo
-(IBAction)generate:(id)sender
{
// Generate a number between 1 and 100 inclusive
int generated;
generated = (random() % 100) + 1;
NSLog(@"generated = %d", generated);
// Ask the text field to change what it is displaying
[textField setIntValue:generated];
}
- (IBAction)seed:(id)sender
{
// Seed the randm number generator with time
srandom(time(NULL));
[textField setStringValue:@"Generator Seeded"];
}
@end
這是對的srandom(time(NULL));
一行。
如果我更換time
與time_t
,談到了另一條錯誤消息:
Unexpected type name 'time_t': unexpected expression.
我沒有什麼線索或者他們的意思做。我用同樣的錯誤閱讀的一個問題顯然是與64位和32位整數有關,但是,我不知道這是什麼意思。或者如何解決它。
這個長的解釋涵蓋了錯誤,但沒有顯示任何類型的解決方案。 – rmaddy
@rmaddy - 哎呀,謝謝,固定 – CRD
非常全面和有益的,謝謝。 –