2012-04-19 2 views
4

사용자가 iCloud를 비활성화 한 경우 iCloud없이 UIDocument를 사용하려고합니다.iCloud가 아닌 UIDocument 사용

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'must pass a valid file URL to -[UIDocument initWithFileURL:]' 

어떤 아이디어 이유 :이 코드는 나에게 오류를 제공

NSURL *url; 
if (_isiCloudEnabled) { 
    NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]; 
    url = [ubiq URLByAppendingPathComponent:[NSString stringWithFormat:@"%f.adoc",[[NSDate date] timeIntervalSince1970]]]; 
} else { 
    NSString *homeDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
    NSString *newFilePath = [homeDirectoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%f.adoc", [[NSDate date] timeIntervalSince1970]]]; 
    url = [NSURL URLWithString:newFilePath]; 
} 

ASListyDocument *d = [[ASListyDocument alloc] initWithFileURL:url]; 

: 나는 다음과 같은 코드가? 디버거에서 URL을 살펴 보았습니다. 유효한 것으로 보입니다. 시뮬레이터와 전화에서 실행 해 보았습니다. 동일한 문제입니다!

그건 그렇고, 중요한 점을 대비하여 iOS 5.0이 장착 된 기기에서 실행됩니다.

답변

11

실제로 가능성 URL하지만 경로는

NSString *homeDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *newFilePath = [homeDirectoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%f.adoc", [[NSDate date] timeIntervalSince1970]]]; 
url = [NSURL URLWithString:newFilePath]; 

건물있는 URL되지 않고 있습니다. 유효한 URL에 스키마가 필요하다는 것을 잊지 마십시오. 파일의 경우 "file : //"입니다. [NSURL fileURLWithPath:]을 사용하여 파일 URL을 작성해보세요.

url = [NSURL fileURLWithPath:newFilePath]; 
+0

감사합니다. 그것은 그것을 고쳤다! –

관련 문제