所以我试图创建一个tableview,一个单元格不会出现。除了不向食谱数组添加任何内容之外,我的代码有什么明显的错误吗?
如果这意味着什么,当我尝试将tableview链接到我的代码时,它并没有给我机会创建一个插座。 Github link here
我是iOS编程的新手,所以这可能是一个愚蠢的问题,如果是这样的话,很抱歉。
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var recipes : [Recipe] = []
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let recipe = recipes[indexPath.row]
cell.textLabel?.text = recipe.title!
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return recipes.count
}
func createRecipe() -> [Recipe] {
let recipe1 = Recipe()
recipe1.title = "Test"
recipe1.instructions = "testing"
recipe1.time = "testing"
let recipe2 = Recipe()
recipe2.title = "Test2"
recipe2.instructions = "testing"
recipe2.time = "testing"
return [recipe1, recipe2]
}
}
感谢。
答案 0 :(得分:1)
您需要在viewDidLoad中指定配方类数组,并在CellForAt中指定UITableviewCell
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
recipes = createRecipe()
tableView.reloadData()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = let cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
let recipe = recipes[indexPath.row]
cell.textLabel?.text = recipe.title!
return cell
}
答案 1 :(得分:0)
你在哪里打createRecipe()
?你在哪里为你的recipes
阵列添加食谱?我想你的意思是在recipes = createRecipe()
中写viewDidLoad
。此外,为了确保您的tableView加载了最新数据,还要添加tableView.reloadData()
。
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
recipes = createRecipe()
tableView.reloadData()
}
否则你的recipe
将只是一个空数组,转换为0行......
答案 2 :(得分:0)
实际上问题出在你的故事板中。您的控制器不是$dir = read-host "Please Enter Directory to Search."
$nameOfBadFile = Read-Host "The name of the bad file, including extension"
$goodImg = read-host "Full location of your known good file (C:\somefile.txt)."
$i=0;
foreach($file in (Get-ChildItem $dir -Recurse | ?{$_.Name -eq $nameOfBadFile}))
{
$file.Delete()
$i++;
Write-Host "Just Deleted an instance of the bad image. You Have deleted $i images so far."
$goodimg | Copy-Item -Destination $file.Directory
Write-Host "Copied good file to current directory, $file.Directory"
}
基本ViewController
。因此,您需要将类型从UIViewController
更改为UIViewController
并在之后关联ViewController
。这就是为什么当你第一次尝试链接它时我没有工作的原因。我上传的图片很清晰。
答案 3 :(得分:0)
由于factor(c(2,1,1,3,3))
类是在coreData中创建的,因此我没有保存到coreData,我也没有从Recipe
函数中保存任何内容。
这里有修复
新功能:
createRecipe
修订 func getRecipes() {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
do {
recipes = try context.fetch(Recipe.fetchRequest()) as! [Recipe]
print(recipes)
} catch {
print("ERROR")
}
}
createRecipe()
viewDidLoad
func createRecipe() -> [Recipe] {
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let recipe3 = Recipe(context: context)
recipe3.title = "test3"
recipe3.instructions = "testing"
recipe3.time = "testing"
(UIApplication.shared.delegate as! AppDelegate).saveContext()
navigationController!.popViewController(animated: true)
return [recipe3]
}