2016-05-02 17 views
0

Ich erstelle eine einfache GPUImageView. Hier ist mein Code:iOS - GPUImageView kann nicht programmgesteuert erstellt werden?

GPUImageView *gpImageView = [[GPUImageView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    UIImage * image = [UIImage imageNamed:@"placeholder.png"]; 
    GPUImagePicture * inputImage = [[GPUImagePicture alloc] initWithImage:image]; 
    [inputImage processImage]; 
    [inputImage addTarget: gpImageView]; 
    [self.view addSubview:gpImageView]; 

Meine App stürzt auf dieser Linie:

enter image description here

ich auf dem iPhone 6+ leite und meine iOS-Version 8.3 Xcode Version 7.1

I erinnere dich daran, diesen Code auf iOS 9.1 auszuführen und es funktioniert.

UPDATE

ich dies mit dem Simulator iOS 8.3 iPhone nur 6 getestet und es funktioniert.

Antwort

1

Für iOS 8.3 können Sie wie unten etwas tun, wie pro:

https://github.com/BradLarson/GPUImage/issues/2041

In Methode + (BOOL)supportsFastTextureUpload in GPUImageContext.m so etwas tun:

float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 
NSString* formattedVersion = [NSString stringWithFormat:@"%.01f", version]; 
if ([formattedVersion isEqualToString:@"8.3"]) { 
    return NO; // https://github.com/BradLarson/GPUImage/issues/2041 
} else { 
    return (CVOpenGLESTextureCacheCreate != NULL); 
} 

Hope it :)

helfen
+1

Wie bereits erwähnt, hatte iOS 8.3 (und nur iOS 8.3) einen Fehler, der Textur-Caches unbrauchbar machte. Ich sollte wahrscheinlich einen Check einbauen, aber ich vergesse immer wieder. –

Verwandte Themen