Помогите перевести код из ObjC в Swift


#1

Всем привет, кто-нибудь может последовательно описать, что делает данный код и в идеале, как его перевести в свифт?
Заранее спасибо)

detailCell.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addSubview:detailCell];
NSDictionary *viewDict = NSDictionaryOfVariableBindings(detailCell);
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[detailCell]-|" options:0 metrics:nil views:viewDict]];
if (!previousCell) {
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[detailCell(100@500)]" options:0 metrics:nil views:viewDict]];
} else {
    NSDictionary *viewDict = NSDictionaryOfVariableBindings(detailCell, previousCell);
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[previousCell]-[detailCell(100@500)]" options:0 metrics:nil views:viewDict]];
}
if (module == _moduleManager.modules.lastObject) {
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[detailCell]-|" options:0 metrics:nil views:viewDict]];
}

#2

Попробуйте скачать из App Store Swiftify for Xcode - переводит из ObjC -> Swift. Сам скачал, но пока руки не дошли.


#3

У вас очень простой код, он на swift будет точно также написан, за исключением квадратных скобок и свинцовым видом объявления переменной


#4

Вот как мне перевел конвертер, но это не работает в свифте, поэтому я и спрашиваю
Вы бы не могли последовательно объяснить, что делает этот код?
var viewDict = NSDictionaryOfVariableBindings(detailCell)
var viewDict: NSDictionary = [detailCell]
if let aDict = viewDict as? [String : Any] {
contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: “|-[detailCell]-|”, options: [], metrics: nil, views: aDict))
}
if !(previousCell != nil) {
if let aDict = viewDict as? [String : Any] {
contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: “V:|-[detailCell(100@500)]”, options: [], metrics: nil, views: aDict))
}
} else {
var viewDict = NSDictionaryOfVariableBindings(detailCell, previousCell)
if let aDict = viewDict as? [String : Any] {
contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: “V:[previousCell]-[detailCell(100@500)]”, options: [], metrics: nil, views: aDict))
}
}
if module == (moduleManager?.modules.last as? BRModule) {
if let aDict = viewDict as? [String : Any] {
contentView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: “V:[detailCell]-|”, options: [], metrics: nil, views: aDict))
}
}