* Законченный переписывают ответа *
Следующий код работает: выход
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
NSArray *dp = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [dp objectAtIndex:0];
NSString *fileNameWithPath = [NSString stringWithFormat:@"%@/%@",path,@"fileName.txt"];
int fd = open([fileNameWithPath UTF8String], O_CREAT | O_RDWR);
NSLog(@"Open %@ for writing returned %d",fileNameWithPath,fd);
return YES;
}
Debug:
Re-enabling shared library breakpoint 1
(gdb) n
30 NSLog(@"Open %@ for writing returned %d",fileNameWithPath,fd);
(gdb) n
2012-01-20 11:01:23.161 FOpen[6535:707] Open /var/mobile/Applications/AF7EA358-E4AA-491F-AEA1-83080F2749E5/Documents/fileName.txt for writing returned 6
32 return YES;
Ключ заключается в том, что вы должны передать функции с «открытым строка ac style, например [fileNameWithPath UTF8String]
. Если вы используете ARC, вам, возможно, придется немного поработать над тем, чтобы компилятор был счастлив, но я не могу это подтвердить.
вы можете получить доступ к файлам в изолированной программной среде вашего приложения (например, папке «Документы»). как вы получаете 'fileNameWitPath'? чтобы получить каталог документов, который вам нужно выполнить: 'NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString * docPath = [paths objectAtIndex: 0]; 'для temp dir:' NSTemporaryDirectory() '- это NSString с указанием пути к tmp –
« как вы получаете ... »: NSArray * dp = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask , ДА); NSString * path = [dp objectAtIndex: 0]; – theWalker
Пожалуйста, перечитайте мой ответ. Я переписал его. Код работает сейчас. – Diziet