2016-01-10 49 views
0

在我下面的代碼,將出現在 「CKAsset *myfile=[[CKAsset alloc] initWithFileURL:fileurl];」 錯誤信息的行的Xcode:CKAsset在CloudKit

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *localPath = [[paths objectAtIndex: 0] stringByAppendingPathComponent: @"temporary.png"]; 
    NSLog(@"local path=%@", localPath); 
    [UIImagePNGRepresentation(self.scriptPicture.image) writeToFile:localPath atomically:YES]; 
    //[opData.scripts writeToFile:localPath atomically:YES]; 
    if ([[NSFileManager defaultManager] fileExistsAtPath:localPath]) { 
     NSLog(@"file is exist"); 
     NSURL *fileurl=[NSURL URLWithString:localPath]; 
     CKAsset *myfile=[[CKAsset alloc] initWithFileURL:fileurl]; 
     //postRecrod[@"scriptPicture"]=myfile; 
     [postRecrod setObject:myfile forKey:@"scriptPicture"]; 
} 

誤差小於:

終止應用程序由於未捕獲的異常 「 NSInvalidArgumentException',原因:'非文件URL'

我不知道如何解決這個和se拱網整夜,但沒有幫助。 請幫幫我!我是一個代碼初學者!

回答

0

我想你的字符串將與文件://開頭 你能試着將其更改爲這樣的事情:

在斯威夫特:

CKAsset(fileURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("temporary", ofType: "png")!)) 
1

您正確構建fileurl

替換此行:

NSURL *fileurl=[NSURL URLWithString:localPath]; 

這一個:

NSURL *fileurl=[NSURL fileURLWithPath:localPath]; 

始終使用fileURLWithPath:方法從文件路徑創建一個文件URL。使用URLWithString:爲代表以方案開頭的正確URL(例如http:,mailto:等)的字符串創建URL時使用。