0

次のコードはシミュレーターで機能しますが、imgがnilであるため、デバイスがクラッシュします。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    for (NSString* path in userImages) {
        NSLog(@"image at %@", path); //logs "image at userImage0.png"
        NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:path];
        UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
        unichar ch = [path characterAtIndex:9];
        NSLog(@"Ch = %c", ch); //correctly logs "0"
        if (ch == '0') {
            [self.images insertObject:img atIndex:0]; //this throws the error
        }
    }

シミュレータではなくデバイスで実行するとimgnilになるのはなぜですか?画像は元々次のように保存されます:

NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];
NSString *imageName = @"userimage0.png";
NSString *imagePath = [docsDir stringByAppendingPathComponent:imageName];
[UIImagePNGRepresentation(img) writeToFile:imagePath atomically:YES];
4

1 に答える 1

0

Sorry, it was a capitalization problem. userimage vs userImage. The simulator doesn't care about that (I wish it did), but the device does.

于 2012-09-13T16:29:15.177 に答える