2011-07-08 7 views
0
- (IBAction)sendMessage:(id)sender 
{ 
    NSString* conversationFile = [@"~/" stringByAppendingPathComponent:@"conversation.txt"]; 
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:conversationFile]; 

    if (fileExists == FALSE) 
    { 
     [self doShellScript:@"do shell script \"cd ~/; touch conversation.txt\""]; 
    } 

    NSString *conversationContent = [[NSString alloc] stringWithContentsOfFile:@"~/conversation.txt" encoding:NSUTF8StringEncoding error:NULL]; 
    NSString *myMessage = [[messageBox stringValue]copy]; 

    NSString *combinedContent = [NSString stringWithFormat:@"%@ \r\n %@", conversationContent, myMessage]; 
    [[[myConversationBox textStorage] mutableString] setString: combinedContent]; 
    [combinedContent writeToFile:@"~/conversation.txt" atomically:YES encoding:NSUTF8StringEncoding error:NULL]; 

} 

上記のコードは、あなたが(shouldnする必要はありませんので、NSStringのクラスメソッドではなく、インスタンスメソッドであるObjective-CのファイルI/Oエラー

2011-07-07 21:38:08.703 iMessages[86493:903] -[NSPlaceholderString stringWithContentsOfFile:encoding:error:]: unrecognized selector sent to instance 0x100111690

2011-07-07 21:38:08.704 iMessages[86493:903] -[NSPlaceholderString stringWithContentsOfFile:encoding:error:]: unrecognized selector sent to instance 0x100111690

+0

をあなたがするif文の後に行を変更した場合に何が起こるか:* conversationContent = [:conversationFileエンコーディング:NSUTF8StringEncodingエラー:[NSStringのアロケーション] stringWithContentsOfFile NULL]をNSStringの。 –

+0

if文の前には意味がありますか?それはすでに後です.. – evdude100

答えて

2

stringWithContentsOfFile:encoding:error:次のエラーを提示し最初に割り当てます。

NSString *conversationContent = [NSString stringWithContentsOfFile:@"~/conversation.txt" encoding:NSUTF8StringEncoding error:NULL]; 
+0

エラーはこれ以上発生しませんが、ファイルはまったく書き込まれません – evdude100

+0

NSErrorオブジェクトを 'writeToFile'メソッドに渡し、どのエラーが発生しているのかを確認してください。 – highlycaffeinated

+0

私はどのように考えている。 – evdude100

1

stringWithContentsOfFileの代わりに使用initWithContentsOfFileまたはalloc呼び出しを削除。だから、持っている:

NSString *conversationContent = [[NSString alloc] initWithContentsOfFile:@"~/conversation.txt" encoding:NSUTF8StringEncoding error:NULL]; 

または

NSString *conversationContent = [NSString stringWithContentsOfFile:@"~/conversation.txt" encoding:NSUTF8StringEncoding error:NULL]; 
+0

これも同様ですが、ファイルは書き込まれません – evdude100