Ios Objective-C指针类型的隐式转换';派送"来源"和"x27 ;;
我试图学习如何使用GCD(),并从apple文档中编写其中一些代码。但它不能在Xcode中编译。我不知道该怎么修Ios Objective-C指针类型的隐式转换';派送"来源"和"x27 ;;,ios,objective-c,grand-central-dispatch,Ios,Objective C,Grand Central Dispatch,我试图学习如何使用GCD(),并从apple文档中编写其中一些代码。但它不能在Xcode中编译。我不知道该怎么修 - (void)viewDidLoad { [super viewDidLoad]; dispatch_source_type_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue()); if (timer) {
- (void)viewDidLoad
{
[super viewDidLoad];
dispatch_source_type_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
if (timer) {
dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), 30ull * NSEC_PER_SEC, 1ull * NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
NSLog(@"YES!");
});
dispatch_resume(timer);
}
// Do any additional setup after loading the view, typically from a nib.
}
错误:
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:22:36: Implicit conversion of Objective-C pointer type 'dispatch_source_t' (aka 'NSObject<OS_dispatch_source> *') to C pointer type 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') requires a bridged cast
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:22:28: Incompatible pointer types initializing 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') with an expression of type 'dispatch_source_t' (aka 'NSObject<OS_dispatch_source> *')
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:25:35: Implicit conversion of C pointer type 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') to Objective-C pointer type 'dispatch_source_t' (aka 'NSObject<OS_dispatch_source> *') requires a bridged cast
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:25:35: Incompatible pointer types passing 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') to parameter of type 'dispatch_source_t' (aka 'NSObject<OS_dispatch_source> *')
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:26:43: Implicit conversion of C pointer type 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') to Objective-C pointer type 'dispatch_source_t' (aka 'NSObject<OS_dispatch_source> *') requires a bridged cast
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:26:43: Incompatible pointer types passing 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') to parameter of type 'dispatch_source_t' (aka 'NSObject<OS_dispatch_source> *')
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:29:25: Implicit conversion of C pointer type 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') to Objective-C pointer type 'dispatch_object_t' (aka 'NSObject<OS_dispatch_object> *') requires a bridged cast
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:29:25: Incompatible pointer types passing 'dispatch_source_type_t' (aka 'const struct dispatch_source_type_s *') to parameter of type 'dispatch_object_t' (aka 'NSObject<OS_dispatch_object> *')
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:22:36:将Objective-C指针类型“dispatch\u source\t”(又名“NSObject*)隐式转换为C指针类型“dispatch\u source\u type”(又名“const struct dispatch\u source\u type\u s*)需要桥接强制转换
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:22:28:不兼容的指针类型初始化“dispatch\u source\u type\t”(又名“const struct dispatch\u source\u type\u s*),表达式类型为“dispatch\u source\u t”(又名“NSObject*”)
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:25:35:将C指针类型“dispatch\u source\u type”隐式转换为Objective-C指针类型“dispatch\u source\u t”(又名“NSObject*)需要桥接强制转换
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:25:35:不兼容的指针类型将“dispatch\u source\u type\u t”(也称为“const struct dispatch\u source\u type\u s*)传递给“dispatch\u source\u t”(也称为“NSObject*)类型的参数
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:26:43:将C指针类型“dispatch\u source\u type”隐式转换为Objective-C指针类型“dispatch\u source\u t”(又名“NSObject*)需要桥接转换
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:26:43:不兼容的指针类型将“dispatch\u source\u type\u t”(也称为“const struct dispatch\u source\u type\u s*)传递给“dispatch\u source\u t”(也称为“NSObject*)类型的参数
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:29:25:将C指针类型“dispatch\u source\u type”隐式转换为Objective-C指针类型“dispatch\u object”(又名“NSObject*)需要桥接转换
/Users/sunfmin/Developments/GCDTests/GCDTests/ViewController.m:29:25:不兼容的指针类型将“dispatch\u source\u type\t”(又名“const struct dispatch\u source\u type\u s*)传递给“dispatch\u object\t”(又名“NSObject*)类型的参数
调度源的类型为调度源
,因此应为
dispatch_source_t timer = ...
dispatch\u source\u type\t
是dispatch\u source\u create()
的第一个参数的类型,在您的例子中是dispatch\u source\u type\u TIMER