Я следую учебнику Objective-C о том, как оживить меню с помощью UIKit Dynamics, и у меня возникли проблемы с переводом следующего кода с Objective-C на Swift.Перевод @interface UIView из Objective-C в Swift
animator.h
@interface Animator : NSObject
+ (instancetype)animatorWithScreen:(UIScreen *)screen;
- (void)addAnimation:(id<Animation>)animatable;
- (void)removeAnimation:(id<Animation>)animatable;
@end
@interface UIView (AnimatorAdditions)
- (Animator *)animator;
@end
animator.m
@implementation Animator
{
}
+ (instancetype)animatorWithScreen:(UIScreen *)screen
{
if (!screen) {
screen = [UIScreen mainScreen];
}
Animator *driver = objc_getAssociatedObject(screen, &ScreenAnimationDriverKey);
if (!driver) {
driver = [[self alloc] initWithScreen:screen];
objc_setAssociatedObject(screen, &ScreenAnimationDriverKey, driver, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
return driver;
}
@implementation UIView (AnimatorAdditions)
- (Animator *)animator
{
return [Animator animatorWithScreen:self.window.screen];
}
@end
Я был в состоянии получить все остальное работает, но я не уверен, как получить UIView, чтобы иметь свойство аниматора с помощью Swift а также как правильно перевести:
objc_setAssociatedObject(screen, &ScreenAnimationDriverKey, driver, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
относительно objc_setAssociatedObject: http://stackoverflow.com/questions/24133058/is-there-a-way-to-set-associated-objects-in-swift - относительно аниматора: https://developer.apple. com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html – luk2302
Удивительно, я не уверен, почему я так сильно занижен, так как мне просто нужны некоторые рекомендации. Если бы вы могли добавить, что в качестве ответа я поставил его как правильный. –