2012-03-08 22 views
1

穏やかにしてください!私は自分のしていることをあいまいに理解しているだけです。UIDocumentInteractionControllerの "Expression Result Unused"

UIDocumentInteractionControllerのNameプロパティを設定しようとしましたが、別のアプリケーションに送信する前にファイル名を変更したいと考えています。私はこれを達成するために、次を使用しています:

UIDocumentInteractionController *documentController; 
    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
    NSURL *soundFileURL = [NSURL fileURLWithPath:[docDir stringByAppendingPathComponent: 
                [NSString stringWithFormat: @"%@/%@", kDocumentNotesDirectory, currentNote.soundFile]]]; 

    NSString *suffixName = @""; 
    if (self.mediaGroup.title.length > 10) { 
     suffixName = [self.mediaGroup.title substringToIndex:10]; 
    } 
    else { 
     suffixName = self.mediaGroup.title; 
    } 
    NSString *soundFileName = [NSString stringWithFormat:@"%@-%@", suffixName, currentNote.soundFile]; 

    documentController = [UIDocumentInteractionController interactionControllerWithURL:(soundFileURL)]; 
    documentController.delegate = self; 
    [documentController retain]; 
    documentController.UTI = @"com.microsoft.waveform-​audio"; 
    documentController.name = @"%@", soundFileName; //Expression Result Unused error here 
    [documentController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES]; 

私は、この行の「式結果未使用」のエラーを取得しています:

documentController.name = @"%@", soundFileName; 

私はこの1つを把握しようとしている私の心を失っています。いかなる援助も感謝します。

documentController.name = @"%@", soundFileName; 

@"%@"がリテラルNSStringですが、コンパイラはあなたのための任意のフォーマット/交換を行うことはありません。

+1

@ "%@"を削除してください。 –

答えて

1

は、残念ながら、あなたは、このように文字列を作成することはできません。あなたが明示的に文字列コンストラクタのいずれかの方法をコールしなければなりません:soundFileNameNSStringそのものであるので、この場合は

documentController.name = [NSString stringWithFormat:@"%@", soundFileName]; 

を、しかし、あなたがしなければならないすべては、割り当てです:

documentController.name = soundFileName; 

コンマの後のビット(あなたがsoundFileNameを参照しているところ)が評価されて破棄されていることをコンパイラが伝えていることを警告しています。

Cでは、したがってObjCでは、カンマはステートメントを区切る演算子です。それぞれ別々に評価されます。ですから、警告を取得している。このラインは書き換えることができます

documentController.name = @"%@"; 
soundFileName; 

あなたが見ることができるように、二行目は全く何もしません。

+0

有益な回答ありがとうございました!残念ながら、他のアプリに送信されるファイルの名前は変更されていません。何かが明らかにあなたに当たっていない限り、私はいくつかの検索をした後、別の質問のためにそれを保存します。 – user1257826

+0

'NSLog':NSLog(@"%@、%@、%@ "、suffixName、currentNote.soundFile、soundFileName);を使用して' soundFileName'とそれを作成する他の変数を調べて、それらがあなたが期待しているもの。 –

+0

私は同じことをしようとしています - そして名前は変わりません。私はUTIは変更できますが、名前は変更できません; – slott

関連する問題