Ios 使用数组快速修改表视图

Ios 使用数组快速修改表视图,ios,arrays,swift,uitableview,Ios,Arrays,Swift,Uitableview,嗨,我的个人项目快完成了,但当我试图用数组修改我的表视图时遇到了问题。 这是我正在使用的函数;它获取我拥有的数据,并将其分别放入注释名称和注释坐标中,然后进入表视图,所有这些都包含在自定义地图标注中 我设置它的方法是使用I值进行计数,并与名称和坐标完美匹配,如果我将I放入项目列表的“索引”中,它将通过对它们进行计数来实现这一点 我的问题是,我希望能够在tableview中显示多行信息,这是使用“0…1中的for u”来实现的。然而,当我结合index=I做这个时,我得到了这个 有谁知道我该如何在

嗨,我的个人项目快完成了,但当我试图用数组修改我的表视图时遇到了问题。 这是我正在使用的函数;它获取我拥有的数据,并将其分别放入注释名称和注释坐标中,然后进入表视图,所有这些都包含在自定义地图标注中

我设置它的方法是使用I值进行计数,并与名称和坐标完美匹配,如果我将I放入项目列表的“索引”中,它将通过对它们进行计数来实现这一点

我的问题是,我希望能够在tableview中显示多行信息,这是使用“0…1中的for u”来实现的。然而,当我结合index=I做这个时,我得到了这个

有谁知道我该如何在每个池的tableview中获取两行信息吗?最终结果将具有正确的池名和位置(已经完成),然后是正确的相应地址和室内/室外描述

我的代码如下,任何帮助都将不胜感激。我到处都搜索过,但找不到任何有用的东西,不需要我重做所有事情

func populatePoolsList() {
    let names = ["BSC Waltham", "Weston Golf Club", "BSC Wellesley", "Life Time Natick"]

    let coordinates = [
        CLLocationCoordinate2D(latitude: 42.400366, longitude: -71.279059),
        CLLocationCoordinate2D(latitude: 42.361025, longitude: -71.287842),
        CLLocationCoordinate2D(latitude: 42.348945, longitude: -71.228759),
        CLLocationCoordinate2D(latitude: 42.312967, longitude: -71.394940),
        ]
    let wishlist = ["444 Winter St, Indoor Pool", "275 Meadowbrook Rd", "Outdoor Pool", "Someplace in Wellesley", "Both Infoor and Outdoor Pools", "a place in Natick", "Either pools"]
     let items = ["444 Winter St, Indoor Pool", "275 Meadowbrook Rd", "Outdoor Pool", "Someplace in Wellesley", "Both Infoor and Outdoor Pools", "a place in Natick", "Either pools"]

    pools = []
    for i in 0..<kPoolsWishListManagerNumberOfPools {
        let name = names[i]
        let avatar = UIImage(named: "outdoorpool 2")!
        var wishlist = [String]()
        for _ in 0...1 {
            let index = i
            wishlist.append(items[index])
        }

        let pool = Pool(name: name, avatar: avatar)
        pool.wishList = wishlist
        pool.location = coordinates[i]
        pools.append(pool)
    }
} 
func populateToolsList(){
让名字=[“BSC沃尔瑟姆”,“韦斯顿高尔夫俱乐部”,“BSC韦尔斯利”,“终身纳蒂克”]
设坐标=[
CLLocationCoordinate2D(纬度:42.400366,经度:-71.279059),
CLLocationCoordinate2D(纬度:42.361025,经度:-71.287842),
位置坐标2D(纬度:42.348945,经度:-71.228759),
CLLocationCoordinate2D(纬度:42.312967,经度:-71.394940),
]
let wishlist=[“冬季街444号,室内游泳池”,“草地布鲁克路275号”,“室外游泳池”,“韦尔斯利某处”,“信息和室外游泳池”,“纳蒂克某处”,“任一游泳池”]
let items=[“冬季街444号,室内游泳池”,“梅多布鲁克路275号”,“室外游泳池”,“韦尔斯利某处”,“信息和室外游泳池”,“纳蒂克某处”,“任一游泳池”]
池=[]

对于0..中的i,您的代码很混乱,因为您有一个常量
wishlist
和一个局部变量
wishlist
,它们是不同的对象

由于使用的不是当前循环索引,而是最外层的索引
i

也许你的意思是在第一次迭代中使用了项目0和1,在第二次迭代中使用了项目2和3,依此类推

let index = i * 2
wishlist = [items[index], items[index+1]]
这要求常量
wishlist
至少包含
kPool SwishListManagerNumber of Pool*2
项,否则会发生超出范围的崩溃


基本上,如果数据是静态的,我建议扩展池初始值设定项

init(name: String, avatar: UIImage, coordinate: CLLocationCoordinate2D, wishlist : [String])
并以更有效的方式填充阵列

func populatePoolsList() {
   pools = [Pool(name: "BSC Waltham", avatar: UIImage(named: "outdoorpool 2")!, coordinate: CLLocationCoordinate2D(latitude: 42.400366, longitude: -71.279059), wishlist : "444 Winter St, Indoor Pool", "275 Meadowbrook Rd")
            Pool(name: "Weston Golf Club", avatar: UIImage(named: "outdoorpool 3")!, coordinate: CLLocationCoordinate2D(latitude: 42.361025, longitude: -71.287842), wishlist : "275 Meadowbrook Rd", "Outdoor Pool",
            ... ]

或者将数据保存在磁盘上的JSON文件中,并将JSON解码到
实例中。

您的愿望列表值分组不一致。请尝试将愿望列表更改为:

let wishlist = ["444 Winter St, Indoor Pool",
                "275 Meadowbrook Rd, Outdoor Pool",
                "Someplace in Wellesley, Both Infoor and Outdoor Pools",
                "a place in Natick, Either pools"]

您提供的函数适用于第一个注释(BSC Waltham),但我的主要问题是让后续注释(如BSC Wellesley)填充正确的信息。一般来说,我对编码和循环/索引非常陌生,这就是我的循环混乱的原因;最初我认为我必须使用“I”作为数组中每两个字符串的计数器,但现在我不确定这是否可行。我同意你提出的第一个建议,因为在我看来,我个人更喜欢使用整数运算,这更像是我在表视图中寻找的一种快速修复方法,你是否尝试在f上显示地址第一行和第二行的位置类型?@Jackson.RYes这正是我想要的,但老实说,我会接受在tableview中以任何顺序保留这两位信息,只要它们在正确的池注释中。hahaThat是我尝试的第一件事,但它只是将地址和描述都放在t中他把同一行和下一行的信息放在第二行。