作者petertom (彼得汤姆)
看板MacDev
标题Re: [问题] XCode5 测试连续建立UIDocument会失败
时间Sun Oct 6 12:19:43 2013
感谢回应..
这是一个方向,我会来试试看。
只是好奇的是,我是使用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