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

}

上記のコードは次のエラーを示します

2011-07-07 21:38:08.703 iMessages[86493:903] -[NSPlaceholderString stringWithContentsOfFile:encoding:error:]: 認識されないセレクターがインスタンス 0x100111690 に送信されました

2011-07-07 21:38:08.704 iMessages[86493:903] -[NSPlaceholderString stringWithContentsOfFile:encoding:error:]: 認識されないセレクターがインスタンス 0x100111690 に送信されました

4

2 に答える 2

2

stringWithContentsOfFile:encoding:error:は のクラス メソッドでNSStringあり、インスタンス メソッドではないため、最初に割り当てる必要はありません (すべきではありません)。

NSString *conversationContent = [NSString stringWithContentsOfFile:@"~/conversation.txt" encoding:NSUTF8StringEncoding error:NULL];
于 2011-07-08T01:46:44.710 に答える
1

initWithContentsOfFile通話の代わりに使用するstringWithContentsOfFileか、通話を削除しallocます。だから持っています:

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

また

NSString *conversationContent = [NSString stringWithContentsOfFile:@"~/conversation.txt" encoding:NSUTF8StringEncoding error:NULL];
于 2011-07-08T01:47:34.880 に答える