【发布时间】:2019-02-16 19:25:05
【问题描述】:
在我的应用程序中,我将锻炼存储为 NSDictionary(练习、集、代表、公斤和笔记),但我想将每个人存储为字符串。我有一个自己的课程来创建锻炼(ExerciseCreator.swift)。 onDoneBlock 是这样的:var onDoneBlock : ((NSDictionary) -> Void)?
现在代码是这样使用的:
//Creating a dictionary from the exercise values
var exerciseDictionary: NSDictionary!
exerciseDictionary = ["Exercise" : exerciseNameTextField.text!, "Sets" : String(format: "%d", setCount), "Reps" : String(format: "%d", repsCount), "KG" : String(format: "%d", kgCount)]
//Closing modal and refreshing tableview on parent view controller
if let callback = self.onDoneBlock {
callback (exerciseDictionary)
}
在我的主视图控制器中,代码如下:
let exerciseCreator = ExerciseCreator()
exerciseCreator.viewReady = {() -> Void in}
exerciseCreator.onDoneBlock = {(dict) -> Void in
self.dismiss(animated: true, completion: {
self.exercisesArray.add(dict)
self.tableView.reloadData()
print("Exercises: \(self.exercisesArray)")
})
}
我怎样才能完成同样的任务,但使用字符串而不是 NSDictionary?
【问题讨论】:
-
你在哪里定义你的完成块?
-
@CodeChanger
var onDoneBlock : ((NSDictionary) -> Void)?和if let callback = self.onDoneBlock {在一个名为ExerciseCreator.swift 的类中。用法(最后一个代码)在我的主视图控制器中(HomeViewController.swift)
标签: ios arrays swift xcode nsdictionary