将Objective-C代码转换为Swift

时间:2015-06-22 11:23:07

标签: swift

我是Swift的新手,我想如果有人能告诉我如何将以下代码片段翻译成 Objective-C Swift 即可。

代码:

GridView1.RenderControl(htw);
Response.Write(sw.ToString());

相应的标题:

id< JavaUtilConcurrentConcurrentNavigableMap > mapVu = mmcache->kvmap_;

2 个答案:

答案 0 :(得分:2)

稍后会出现一些混乱:您无法以常规/正确的方式从Swift中访问Objective-C类的实例变量。请查看answer by Leo Natan如何解决这个问题。

下面的答案主要关注的是协议而不是实例变量

在swift中你可以将协议作为类型:

let mapVu:JavaUtilConcurrentConcurrentNavigableMap = mmcache.kvmap_

参见一个工作示例:

protocol JavautilBlaBla {
}

class Class1: JavautilBlaBla {
    override init() {
    }
}

class Class2 {
    var kvmap_:Class1

    override init() {
        kvmap_ = Class1()
    }
}

let mmcache = Class2()

let mapVu:JavautilBlaBla = mmcache.kvmap_

答案 1 :(得分:2)

访问实例变量的唯一方法是使用valueForKey()

所以,

let mapVu = mmcache.valueForKey("kvmap_") as! JavaUtilConcurrentConcurrentNavigableMap!