IOS函数处理程序线程安全

IOS函数处理程序线程安全,ios,objective-c,Ios,Objective C,每次scrollview滚动时都会调用下面的代码,如果用户多次滚动,则会导致代码崩溃。如何确保一次只执行1个代码或线程安全 [self.cv addInfiniteScrollingWithActionHandler:^{ [weakSelf loadNextPage]; }]; 下面是一个例子 - (void)_startExperiment { FooClass *foo = [[FooClass alloc] init]; dispatch_qu

每次scrollview滚动时都会调用下面的代码,如果用户多次滚动,则会导致代码崩溃。如何确保一次只执行1个代码或线程安全

 [self.cv addInfiniteScrollingWithActionHandler:^{
    [weakSelf loadNextPage];
}];
下面是一个例子

- (void)_startExperiment {  
      FooClass *foo = [[FooClass alloc] init];  
      dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);  

   for (int i = 0; i < 4; ++i) {  
     dispatch_async(queue, ^{  
       [foo doIt];  
     });  
   }  
   [foo release];  
 }
-(无效)\u开始体验{
FooClass*foo=[[FooClass alloc]init];
调度队列=调度获取全局队列(调度队列优先级默认为0);
对于(int i=0;i<4;++i){
调度异步(队列,^{
[foodoit];
});  
}  
[食物发布];
}

常见的模式是使用互斥来保护访问和/或修改结构的关键代码部分

只需浏览此链接->

请提供堆栈跟踪并解释其崩溃的原因。如果你不知道为什么,那么你需要在寻找未知问题的答案之前找到答案。