Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么我的阵列不使用我发送给它的信息?斯威夫特4_Ios_Arrays_Swift_Uitableview - Fatal编程技术网

Ios 为什么我的阵列不使用我发送给它的信息?斯威夫特4

Ios 为什么我的阵列不使用我发送给它的信息?斯威夫特4,ios,arrays,swift,uitableview,Ios,Arrays,Swift,Uitableview,嗨,我对这个swift很陌生,但我知道一点,我正在尝试在我的数组中插入一个图像和两个文本,如下所示: @IBAction func doneEditing(_ sender: Any) { insertNewActy() print(myCellRows, "Saved") } func insertNewActy(){ addTitles = addTitle.text! addLocations = addLocation.text! newI

嗨,我对这个swift很陌生,但我知道一点,我正在尝试在我的数组中插入一个图像和两个文本,如下所示:

@IBAction func doneEditing(_ sender: Any) {
    insertNewActy()
    print(myCellRows, "Saved")

}


func insertNewActy(){

    addTitles = addTitle.text!
    addLocations = addLocation.text!
    newImages = newImage.image!

    let element = MyCellRows(image: newImages,
                             title: addTitles,
                             location: addLocations)

    myCellRows.insert(element, at: 0)

 }    
我有3个变量,一个是
UIImage
,另一个是
String

但是当我按下
doneEditing
按钮时,什么也没有发生

也许我把这个

addTitles = addTitle.text!
addLocations = addLocation.text!
newImages = newImage.image!
在错误的地方

我的数组是这样的

import UIKit

var myCellRows: [MyCellRows] = []

class ActyViewController: UIViewController {

@IBOutlet weak var myTableView: UITableView!


func createMyCellArray() -> [MyCellRows] {

    var myCells: [MyCellRows] = []

    let dog = MyCellRows(image: #imageLiteral(resourceName: "Dog"),
                         title: "Dog",
                         location: "America")
    let cat = MyCellRows(image: #imageLiteral(resourceName: "Cat"),
                         title: "Cat",
                         location: "Sweden")
    let rabbit = MyCellRows(image: #imageLiteral(resourceName: "Rabbit"),
                         title: "Rabbit",
                         location: "Germany")
    let tiger = MyCellRows(image: #imageLiteral(resourceName: "Tiger"),
                         title: "Tiger",
                         location: "Africa")

    myCells.append(dog)
    myCells.append(cat)
    myCells.append(rabbit)
    myCells.append(tiger)

    return myCells

}
我想要完成什么

我正在尝试将手机
用户库中的2个自定义文本和1个图像添加到我的tableview中。
tableView代码正确且工作正常

谢谢您的时间。:)

注意:iam在my
tableView中使用
myTableView.reload()
View中的类出现


您需要将一个MyCellRows实例传递给
MyCellRows.insert(:at:)
调用。如果您试图同时插入图像和文本,只需实例化一个新的
MyCellRows(图像:?,标题:addTitle.text!,位置:?)

如果你想插入一行标题,但没有图像或位置,你将不得不做一些重新编译。您可以将
MyCellRows
上的
image
location
变量设置为可选(
UIImage?
String?
),然后传递
image:nil
位置:nil
,如:


myCellRows.insert(myCellRows(image:nil,title:addTitle.text!,location:nil))

由于数组“myCellRows”包含类型为“myCellRows”的元素,因此出现错误,但在
func insertNewTitle()
中,尝试插入类型为String的元素。 要解决此错误,必须确保在
func insertNewTitle()
中创建类型为“MyCellRows”的实例,然后将元素附加到“MyCellRows”数组中


您是否必须使用“MyCellRows”或将其类型更改为“type”String@NiallKehoe我想,但我也想插入图像,我可以这样做吗,还是必须先创建一个字符串数组,然后再创建一个包含图像的数组?我正在尝试同时插入图像、标题和位置,抱歉,如果我的速度很慢,但我是新来的,呵呵,我要去哪里插入代码?在
insertNewTitle
函数中?我照你说的做了,我写了这个
func
insertNewTitle(){
myCellRows.insert(myCellRows(图像:
新图像,
标题:
添加标题,
位置:
添加位置),
位于:0)
newImages
newImage.image!
添加位置
添加位置.text!
添加标题
添加标题.text}
请看,我是用这3个变量创建的,因为我需要将它们转换为String类型和UIImage类型。现在我没有收到任何错误,但当按下DoneEditing按钮时什么也没有发生。我也尝试了这一点。我没有收到错误,但当我点击done…tableView.reloadData()时,什么都没有显示更新数据数组后。@PhoneyDeveloper嘿,我在哪里执行此函数?在
viewDidLoad()
?@PhoneyDeveloper中,我在
viewdidappease()
中编写了它,但仍然没有发生任何事情检查我的问题我已对其进行了编辑,但insertNewActy()或insertNewTitle()必须响应用户操作。无论何时,都必须再次重新加载data()。更新数据模型后,必须重新加载data()。然后,将为每个可见行再次调用cellForRowAtIndexPath。
func insertNewTitle(){

let element = MyCellRows(image: #imageLiteral(resourceName: "image"),
                         title: addTitle.text!,
                         location: "Location")

myCellRows.insert(element, at: 0)

}