я был в состоянии видеть интересный случай, используя Estimote nearables SDKARC недоступны методы Swift
Они имеют класс ESTNearable
со свойством называется zone
.
// ENUM
typedef NS_ENUM(NSInteger, ESTNearableZone) {
ESTNearableZoneUnknown = 0,
ESTNearableZoneImmediate,
ESTNearableZoneNear,
ESTNearableZoneFar,
};
// CLASS
@interface ESTNearable : NSObject <NSCopying, NSCoding>
// ...
@property (nonatomic, assign, readonly) ESTNearableZone zone;
// ...
@end
Так что, когда я пытаюсь использовать этот метод в Swift, компилятор выдает эту ошибку:
Как я понимаю, что есть какая-то ошибка компилятора и по какой-то причине он считает, что я хотите использовать старый метод zone
от NSObject
- (struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
Я могу использовать другие специфические свойства этого класса без проблем.
Как я использую SDK, я не могу изменить имя метода zone
. Я считаю, что могу написать какую-то категорию obj-c, добавить туда какой-то новый метод, который вернет значение исходного, но я не хочу добавлять классы obj-c в свой проект.
Есть ли возможность называть этот метод быстрым, как я считаю, правильный метод zone
будет вызван для экземпляров класса?
Заранее благодарен!
бы выключая ARC для этого файла в одиночку с помощью '-fno-ObjC-arc', как компилировать флаги работают? –
Спасибо за совет, но я считаю, что не разрешено отключать ARC для быстрых файлов. –
Если вы укажете зону как ESTNearableZone вместо разрешения компилятору, это может помочь компилятору выбрать правильный метод зоны для использования. –