Ответ 1
Если вы посмотрите отчет о сбое, кажется, что Xcode 8 имеет некоторую проблему, конвертирующую метод Swift CIContext(options: [String : Any]?)
в его Objective-C копию + (CIContext *)contextWithOptions:(NSDictionary<NSString *,id> *)options;
.
Вместо этого он преобразуется как -[CIContext initWithOptions:]
, следовательно, непризнанный селектор.
Возможным обходным путем является объявление категории Objective-C следующим образом:
@interface CIContext (Workaround)
+ (CIContext *)yourprefix_contextWithOptions:(NSDictionary<NSString *, id> *)options;
@end
@implementation CIContext (Workaround)
+ (CIContext *)yourprefix_contextWithOptions:(NSDictionary<NSString *, id> *)options {
return [CIContext contextWithOptions:options];
}
@end
Затем импортируйте эту категорию в заголовок моста моста и замените исходный вызов init CIContext на тот, который указан в этой категории.
Я предполагаю, что это проблема компиляции, которая может быть исправлена с помощью обновления Xcode. Тем временем это решение может оказаться полезным.