我在学习Swift. 我在iOS应用程序项目中创建了第一个快速文件。 快捷文件是一个子类。敏捷父亲班是AO目标-c级. In the objective-c file.m, I use a lazy array;
就像这样:
- (NSArray *)dataArr{
if(_dataArr == nil){
NSDictionary *dic1 = @{@"title":@"dog1",
@"message":@"the dog1"
};
NSDictionary *dic2 = @{@"title":@"dog2",
@"message":@"the dog2"
};
NSDictionary *dic3 = @{@"title":@"dog3",
@"message":@"the dog3"
};
_dataArr = @[dic1, dic2, dic3];
}
return _dataArr;
}
在OC文件中,我使用dataArr若要设置tableView内容,请执行以下操作。
由于我的新的快速文件是像OC的父亲文件,除了数组的内容。
我希望重写数组,使快速文件表视图显示新内容。
我的快速文件代码是这样的:
class testSwift: theOCFatherClass {
override func viewDidLoad() {
let dic1:Dictionary = ["title":"dog1",
"message":"the dog1"
];
let dic2:Dictionary = ["title":"dog2",
"message":"the dog2"
];
let dic3:Dictionary = ["title":"dog3",
"message":"the dog3"]
func getdataArray() -> Array<Any>{
return [dic1, dic2, dic3]
}
var dataArr = getdataArray()
super.viewDidLoad()
}
}
我点击我的iPhone上的快速页面,快速文件的内容是我的OC数组。
我的问题是如何覆盖dataArr通过斯威夫特在新的斯威夫特档案。
如果你愿意,请写一个好例子。
据我所知,您可以覆盖一个惰性的Object-C属性,如
@property (readonly, nonnull) NSArray<NSDictionary<NSString*,NSString*> *> *dataArr;
只有SWIFT中的计算属性
class TestSwift: theOCFatherClass {
lazy var swiftDataArray = [["title":"cat1", "message":"the cat1"], ["title":"cat2", "message":"the cat2"], ["title":"cat3", "message":"the cat3"]]
override var dataArr : [[String:String]] {
return swiftDataArray
}
override func viewDidLoad() { ... }
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。