0

以下の私のコードでは、

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"];
}

" " の行でエラーが発生しますCKAsset *myfile=[[CKAsset alloc] initWithFileURL:fileurl];。エラー メッセージは次のとおりです。

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: 'ファイル以外の URL'

これを解決して一晩中ウェブを検索する方法がわかりませんが、助けにはなりません。私を助けてください !私はコード初心者です!

4

2 に答える 2

2

あなたはfileurl間違って構築しています。

次の行を置き換えます。

NSURL *fileurl=[NSURL URLWithString:localPath];

これで:

NSURL *fileurl=[NSURL fileURLWithPath:localPath];

常にfileURLWithPath:メソッドを使用して、ファイル パスからファイル URL を作成します。URLWithString:スキーム (http:、mailto: など) で始まる適切な URL を表す文字列の URL を作成するときに使用します。

于 2016-01-12T08:02:30.567 に答える