Re: [問題] XCode5 測試連續建立UIDocument會失敗
感謝回應..
這是一個方向,我會來試試看。
只是好奇的是,我是使用XCode5的XCTest來測試...
在我的測試程式中,
他的流程應該是:
setup()時建立UIDocuemnt
testNothing1
teardown()時刪掉UIDocument
setup()時建立UIDocuemnt
testNothing2
teardown()時刪掉UIDocument
setup()時建立UIDocuemnt
testNothing3
teardown()時刪掉UIDocument
前面兩次都是對的
到testNothing3時卻在setup()就會回error code 5
囧
※ 引述《darktt (小朱)》之銘言:
: 我在使用非同步的控制也有相同問題的經驗,
: 不過我用的是 NSArray enumerateObjectsUsingBlock: ,它也是採用非同步的方式,
: 我使用這個是要將選到的多個檔案透過網路上傳某個地方,
: 因為上傳的時候必須要一個一個傳,所以這時後因為非同步的關係,
: 全部檔案都一起上去了。
: 簡單介紹到此為止,
: 我想說的是,你想等待非同步做完才回傳的話,你只能利用 block 做回傳的動作,
: 我測試過的用 while 與 NSLock 都沒有作用,
: 尤其是 while 在 compiler 的過程中為了避免造成無窮迴圈,所以做了點手腳,
: 所以你該做的是將 UIManagedDocument 的 saveToURL:forSaveOperation: 回傳的 block
: 接上自己的做的 block 才行。
: 像是這樣子
: - (void)createTestDocumentWithResultBlock:(void (^) void)resultBlock
: {
: NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
: url = [url URLByAppendingPathComponent:@"TestDocument"];
: self.document = [[UIManagedDocument alloc] initWithFileURL:url];
: [self.document saveToURL:url forSaveOperation:UIDocumentSaveForCreating
: completionHandler:^(BOOL success){
: if (success) {
: resultBlock();
: NSLog(@"Create document successfully");
: }
: }];
: }
: 之後在 block 接第二次與第三次的建立就好了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.224.193.165
討論串 (同標題文章)
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章