我在学习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() { ... }
}