0

テキストファイルを開くために使用していたコードがいくつかあり、うまく機能していましたが、現在はその一部が非推奨になっているため、エラーなしで機能するように変更しました。正常に動作している新しいコードで終了しましたが、修正方法を理解できないという警告が表示されます...これが私のコードです:

-(IBAction)openMyFile:(id)sender
{
    int i;

    NSOpenPanel* openDlg = [NSOpenPanel openPanel];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSURL *myUrl = [NSURL fileURLWithPath:documentsDirectory]; //before here I had setDirectory but now is deprecated
    [openDlg setDirectoryURL:myUrl];

    [openDlg setCanChooseFiles:YES];

    [openDlg setCanChooseDirectories:YES];


    if ( [openDlg runModal] == NSOKButton )
    {

        NSArray* files = [openDlg URLs]; // here I had [openDlg filenames] but now is deprecated

        for( i = 0; i < [files count]; i++ )
        {
            NSString* fileName = [files objectAtIndex:i];

            NSString *content = [NSString stringWithContentsOfURL:fileName encoding:NSUTF8StringEncoding error:nil]; //HERE IS WHERE I GET THE WARNING
        }
     }
}

私が得ている警告は言う:

タイプ「nsurl *」のパラメーターに「nsstring *__strong」を送信する互換性のないポインタータイプ

そして、ファイルのコンテンツを NSString *content に渡そうとすると出てきますが、とにかくコンテンツはファイルのコンテンツで満たされています...すべてがうまく機能するように縫い目があります...どんな助けも大歓迎です..ピース - マッシー

4

1 に答える 1

0

[openDlg URLs]文字列ではなくURLの配列を返します。

NSArray *files = [openDlg URLs];
for(i = 0; i < [files count]; i++)
{
    NSURL *fileURL = [files objectAtIndex:i];
    NSString *content = [NSString stringWithContentsOfURL:fileURL encoding:NSUTF8StringEncoding error:nil];
}
于 2013-05-26T18:45:21.883 に答える