Tôi đang cố gắng chuyển một ứng dụng từ Objective-C sang Swift, nhưng tôi đang gặp sự cố với lớp con của GPUImageFilter.Chuyển các lớp con của bộ lọc GPUImage sang Swift
Trong obj-C, subclassing GPUImageFilter và sử dụng một Shader đoạn khác nhau là dễ dàng như
- (id)init;
{
NSString *fragmentShaderPathname = [[NSBundle mainBundle] pathForResource:@"TestShader" ofType:@"fsh"];
NSString *fragmentShaderString = [NSString stringWithContentsOfFile:fragmentShaderPathname encoding:NSUTF8StringEncoding error:nil];
if (!(self = [super initWithFragmentShaderFromString:fragmentShaderString]))
{
return nil;
}
return self;
}
tôi không thể tìm ra cách để làm điều này trong Swift. Đây là khởi tạo mới của tôi:
override init() {
let fragmentShaderPathname = NSBundle.mainBundle().pathForResource("TestShader", ofType: "fsh")!
let fragmentShaderString = NSString(contentsOfFile: fragmentShaderPathname, encoding: NSUTF8StringEncoding, error: nil)
super.init(fragmentShaderFromString: fragmentShaderString)
}
Ngay sau khi điều này được gọi, treo ứng dụng với thông báo lỗi này: /Users/peterwunder/Documents/XCode/welp/welp/GPUImageTestFilter.swift: 12: 7: fatal error: use of unimplemented initializer 'init(vertexShaderFromString:fragmentShaderFromString:)' for class 'welp.GPUImageTestFilter'
Tôi đang làm gì sai?
Dang. Tôi mong rằng mọi thứ về cơ bản sẽ khác nhau, nhưng tôi không ngờ là _this_. : D Cảm ơn! –