globalqueue是異步隊列。LZ的操作可能會造成某一時刻進行同時操作文件,導致數據異常。換句話說對于你的操作不是線程安全的。解決方法有兩個1.使用NSUserDefault來做。但是NSUserDefault有位數限制。2.自己可以創(chuàng)建一個串行隊列然后把然后自己的操作丟到隊列里面。#defineSYNCGCDQUEUE"COM.CONEBOY.APP.GCD.SYNCGCDQUEUE"@interfaceKKBaseGCDQueue:NSObject/***獲取一個自定義的全局同步隊列**@return返回全局同步隊列*/+(dispatch_queue_t)shareSyncGCDQueue;@end@implementationKKBaseGCDQueue+(dispatch_queue_t)shareSyncGCDQueue{staticdispatch_queue_tbaseSyncQueue=nil;staticdispatch_once_tcreateSyncBaseQueue;dispatch_once(&createSyncBaseQueue,^{baseSyncQueue=dispatch_queue_create(SYNCGCDQUEUE,NULL);});returnbaseSyncQueue;}@end//使用-(void)writeFiles{dispatch_sync([KKBaseGCDQueueshareSyncGCDQueue],^{NSLog(@"blk0");dispatch_async(dispatch_get_main_queue(),^{//updateUINSLog(@"main_queue---blk0");});});}