我是Swift的新手,我想如果有人能告诉我如何将以下代码片段翻译成 Objective-C Swift 即可。
代码:
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
相应的标题:
id< JavaUtilConcurrentConcurrentNavigableMap > mapVu = mmcache->kvmap_;
答案 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!