【问题标题】:convert objc to swift regarding NSDictionaryOfVariableBindings关于 NSDictionaryOfVariableBindings 将 objc 转换为 swift
【发布时间】:2015-11-25 11:17:54
【问题描述】:

我正在努力实现https://stackoverflow.com/a/17376619/433570

特别是。

UIView* subview = ...;

NSDictionary *views = NSDictionaryOfVariableBindings(subview);
[self addConstraints:[NSLayoutConstraint
    constraintsWithVisualFormat:@"H:|[subview]|"
    options:0 metrics:nil views:views]];

我见过NSDictionaryOfVariableBindings swift equivalent?

但这对我没有多大帮助,我怎样才能将objc翻译成swift?

【问题讨论】:

    标签: objective-c swift


    【解决方案1】:

    您只需获取NSDictionaryOfVariableBindings 中列出的每个视图,然后创建一个包含该视图的常用 swift 字典,并将变量名称作为键。

    例子:

    NSDictionaryOfVariableBindings(view1, view2, view3)
    

    会变成

    ["view1" : view1, "view2" : view2, "view3" : view3]
    

    所以

    NSDictionary *views = NSDictionaryOfVariableBindings(subview);
    

    会变成

    let views = ["subview" : subview]
    

    【讨论】:

    • 那么,["subview": subview] 是吗?
    • @eugene,是的,就是这么简单。 NSDictionaryOfVariableBindings 只是获取传递给它的所有内容,并在编译时创建一个像这样的字典(它是一个宏)。
    • @FreeNickname:它是部分编译时和部分运行时。 NSDictionaryOfVariableBindings(view1, view2, view3) 实际上扩展为 _NSDictionaryOfVariableBindings(@"view1, view2, view3", view1, view2, view3, nil) 其中_NSDictionaryOfVariableBindings 是 Cocoa 中实际创建字典的运行时 API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多