1
A
回答
2
currentQueue
return mainQueue
如果你在主線程中調用它。 new
是新的隊列與新主題
2
new
是初始化方法,其從NSObject
文檔NSOperationQueue
繼承說:
此方法的
alloc
和init
的組合。像alloc
一樣,它初始化新對象的isa實例變量,以便它指向類數據結構。然後調用init方法來完成初始化過程。
這意味着調用+new
創建NSOperationQueue
currentQueue
回報你在其上調用該方法的隊列中的新實例。的currentQueue
NSOperationQueue
文檔說:
啓動該操作或零如果隊列無法確定
操作隊列即如果方法調用+currentQueue
是mainQueue
,它可以返回mainQueue
1
證明概念由@Cy-4AH編寫。跳這可以澄清一點。
-(void) viewDidLoad {
NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^(void){
//this block will executed in a separate thread (not the main thread)
if ([NSOperationQueue currentQueue] == [NSOperationQueue mainQueue]) {
NSLog(@"= in block");
} else {
NSLog(@"not = in block"); //This will be log
}
}];
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
[operationQueue addOperation:blockOperation];
//this block will executed in the main thread
if ([NSOperationQueue currentQueue] == [NSOperationQueue mainQueue]) {
NSLog(@"= outside of block"); //This will be log
} else {
NSLog(@"not = outside of block");
}
}
相關問題
- 1. 調度隊列和NSOperationQueue之間的區別
- 2. 之間的〜/和的區別../
- 3. CMake的:$ {}之間的區別 「$ {}」
- 4. '#','%'和'$'之間的區別
- 5. {!!之間的區別!!}和{{}}
- 6. 加入之間的區別
- 7. '+ ='和'= +'之間的區別?
- 8. cp之間的區別
- 9. 同步之間的區別
- 10. 「。+」和「。+?」之間的區別
- 11. 佈局之間的區別?
- 12. .eq之間的區別。和==
- 13. Console.writeline()/trace.writeline()之間的區別
- 14. 「或」與「||」之間的區別?
- 15. ~~與Math.floor之間的區別()
- 16. #。/和#之間的區別。 ./
- 17. !=和!之間的區別==
- 18. site.master main.master之間的區別
- 19. 「%〜dp0」和「。\」之間的區別?
- 20. 撇號之間的區別?
- 21. NSStrings之間的區別?
- 22. | =和^ = css之間的區別
- 23. 之間的區別。和#
- 24. ==和case之間的區別?
- 25. org.apache.hive.jdbc.HiveStatement/org.apache.hadoop.hive.jdbc.HiveStatement之間的區別
- 26. 「**/* /」和「** /」之間的區別?
- 27. jQuery - '。'之間的區別和「#」
- 28. user_posts&user_status之間的區別
- 29. 「?1」和「?」之間的區別
- 30. cURL頭之間的區別
然後'新'會在後臺運行? –
@IdanMoshe,是的。 –