我已經試圖瞭解我的代碼2天現在怎麼了。我希望你有一個想法?NSOperation在全球排隊
我試圖創建一個NSOperationQueue作爲「全局」隊列,允許我從該viewController中的任何方法添加操作。在我嘗試在.h文件中定義隊列以使其成爲全局隊列之前,我在最初需要的方法中創建了它,並且我可以添加操作。這很好。但後來我想檢查從原始方法之外的隊列中是否有任何活動的操作,我顯然不能,因爲我在方法中聲明瞭它。所以,我想用下面的代碼來聲明其在.H:
@property (strong, nonatomic) NSOperationQueue *queue;
和.M的頂部:
@synthesize queue;
這是我的操作添加到隊列中的代碼。
NSInvocationOperation *doMorse = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(morse) object:nil];
[self.queue addOperation:doMorse];
問題是,當我嘗試添加操作時隊列保持空白。 (以前工作正常。)我是否宣佈隊列錯誤?順便說一下,有沒有更好的解決方案,使隊列可以通過任何方法訪問,而不是我嘗試的方法? (在相同的viewController(如果它可以從任何視圖工作,這將是真棒:-)))。
非常感謝!
如果您運行的是ARC,則ivars默認爲強壯。但屬性很弱,請確保你宣佈你的財產較強或保留舊學校 –
隊列'nil'也許? –
我如何知道? – Linus