我有一些可以在英特尔Mac电脑上运行的Objective-C代码,但在装有M1芯片的Mac电脑上却失败了.
dispatch_time_t now = dispatch_time(DISPATCH_TIME_NOW, 0);
dispatch_time_t delta = (uint64_t)(1 * NSEC_PER_SEC);
dispatch_time_t when = dispatch_time(now, delta);
NSLog(@"now: %llu", now);
NSLog(@"delta: %llu", delta);
NSLog(@"when: %llu", when);
NSLog(@"real delta: %llu", when-now);
它将打印如下内容:
now: 1272914827933
delta: 1000000000
when: 1272938827933
real delta: 24000000
1272914827933
+1000000000
=1273914827933
,而不是1272938827933
.为什么这个该死的失败了,而且只在一些Mac上?
编辑:当在实际的iPhone设备上运行时,这也是错误的.只需使用Obj-C创建一个新的Xcode项目,将代码粘贴到AppDelegate中,然后在您的手机上运行.