如果应用程序通过ssh传输到iPhone,则app无法在iPhone上写入文件

时间:2011-05-05 05:15:33

标签: iphone

我正在使用越狱的iPhone,我将应用程序转移到其/ Applications。 我将应用程序chmod为0777。

应用程序可以执行,但这部分代码在模拟器和设备上的行为方式不同。 在模拟器上,长度是upload.jpeg的实际长度, 但在设备上,长度变为0;

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *uploadFilePath = [documentsDirectory stringByAppendingPathComponent:@"upload.jpeg"];

    [UIImageJPEGRepresentation(imageForUpLoad,1) writeToFile:uploadFilePath atomically:YES];
    NSData* dataToUpload = [[NSData alloc] initWithContentsOfFile:uploadFilePath];
    int length = [dataToUpload length];
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"jpeg length"
                                                    message:[NSString stringWithFormat:@"%d",length]
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil, nil];
    [alert show];
    [alert release];

1 个答案:

答案 0 :(得分:1)

这有点棘手,但我发现了问题所在。 改变这个:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *uploadFilePath = [documentsDirectory stringByAppendingPathComponent:@"upload.jpeg"];

到此:

NSString* uploadFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"upload.jpeg"];

添加它会没事的。 但我无法弄清楚为什么我不能在iOS 4.3设备上使用文档目录。 当我使用iOS 4.2设备时,前面的代码也没问题。