Используйте stringWithFormat: в качестве пути к файлу в какао - PullRequest
1 голос
/ 13 марта 2010

У меня проблема с приложением какао, которое берет значение текстового поля и записывает его в файл. Путь к файлу создается с помощью stringWithFormat: для объединения 2 строк. По какой-то причине он не будет создавать файл и консоль ничего не говорит. Вот мой код:

//Get the values of the text field
NSString *fileName = [fileNameTextField stringValue];
NSString *username = [usernameTextField stringValue];

//Use stringWithFormat: to create the file path
NSString *filePath = [NSString stringWithFormat:@"~/Library/Application Support/Test/%@.txt", fileName];

//Write the username to filePath
[username writeToFile:filePath atomically:YES];

Спасибо за любую помощь

Ответы [ 2 ]

9 голосов
/ 13 марта 2010

Проблема в том, что у вас есть тильда ~ на пути.~ расширяется оболочкой в домашний каталог пользователя, но это не происходит автоматически в Какао.Вы хотите использовать -[NSString stringByExpandingTildeInPath].Это должно работать:

NSString *fileName = [fileNameTextField stringValue];
NSString *username = [usernameTextField stringValue];
NSString *fileName = [fileName stringByAppendingPathExtension:@"txt"];    // Append ".txt" to filename
NSString *filePath = [[@"~/Library/Application Support/Test/" stringByExpandingTildeInPath] stringByAppendingPathComponent:fileName];    // Expand '~' to user's home directory, and then append filename
[username writeToFile:filePath atomically:YES];
3 голосов
/ 13 марта 2010

Добавляя к ответу mipadi, лучше использовать - [NSString stringByStandardizingPath], поскольку он делает больше - и может убрать больше проблем - чем разрешает тильду.

...