Я пытался преобразовать учебник https://github.com/fastred/CustomScrollView из Objective-C в Swift, но я застрял в нескольких местах.Non Bool in if statement/Obj-C закрытия в Swift
В Objective-C обладает свойствами:
@property (nonatomic, weak) UIDynamicItemBehavior *decelerationBehavior;
@property (nonatomic, weak) UIAttachmentBehavior *springBehavior;
, а затем он имеет, если заявление:
if self.decelerationBehavior && !self.springBehavior { ... }
Поскольку они не являются явно не Bool
«s, что это значит в Swift ?
void(^solveForY)(CGPoint*) = ^(CGPoint *anchor) {
if (deltaY != 0) {
anchor->y = a * anchor->x + b;
}
};
Это один, кажется, укупорочное и я попытался преобразовать его в Swift с помощью:
func solveForY(_ anchor: inout CGPoint) { if deltaY != 0 { anchor.y = a * anchor.x + b } }
__weak typeof(self)weakSelf = self;
decelerationBehavior.action = ^{
CGRect bounds = weakSelf.bounds;
bounds.origin = weakSelf.dynamicItem.center;
weakSelf.bounds = bounds;
};
Но преобразованное приложение Безразлично» t ведут себя как оригинал вообще. Может ли кто-нибудь сказать мне, как преобразовать это в Swift?
Спасибо большое, я начинаю понимать, почему некоторые госзакупках называют ObjC-C инопланетный язык ..: о. Я добавил еще одно крошечное закрытие. Я просто не могу преобразовать приложение и заставить его работать ... так разочаровывает :( –
Haha Swift очень отличается, но во многом Obj-C довольно похож на другие языки на основе C, просто с некоторыми разными синтаксис. Добавлено другое закрытие ответа. – PeejWeej
Tx снова куча. Вероятно, потребуется много времени, чтобы выяснить, как заставить его работать в Swift :) –