Arrays 访问元组数组Swift 4
我试图为自定义集合视图单元格的某些组件赋值。该数组与自定义集合视图单元格位于同一个类中,但我无法通过seam访问该数组。如有任何建议,将不胜感激Arrays 访问元组数组Swift 4,arrays,swift,tuples,core-location,Arrays,Swift,Tuples,Core Location,我试图为自定义集合视图单元格的某些组件赋值。该数组与自定义集合视图单元格位于同一个类中,但我无法通过seam访问该数组。如有任何建议,将不胜感激 import UIKit import CoreLocation class eventCell: UICollectionViewCell { @IBOutlet private weak var eventTitle: UILabel! @IBOutlet private weak var descriptionLabel:UIL
import UIKit
import CoreLocation
class eventCell: UICollectionViewCell {
@IBOutlet private weak var eventTitle: UILabel!
@IBOutlet private weak var descriptionLabel:UILabel!
@IBOutlet private weak var eventImage: UIImageView!
var eventArray = [(title:String, location:String, lat:CLLocationDegrees, long:CLLocationDegrees)]()
override func prepareForReuse() {
eventImage.image = nil
}
func lool() {
eventTitle.text = eventArray.title
}
}
然而,当我尝试添加标题时,我总是会遇到这个错误:
类型“[(title:String,location:String,lat:CLLocationDegrees,long:CLLocationDegrees)]”(也称为“数组”)的值没有成员“title”
任何帮助都会很好,提前谢谢 为什么不创建一些
Struct
?
简单地说:
struct Event {
var title: String
var location: String
var lat: CLLocationDegrees
var long: CLLocationDegrees
}
class eventCell: UICollectionViewCell {
@IBOutlet private weak var eventTitle: UILabel!
@IBOutlet private weak var descriptionLabel:UILabel!
@IBOutlet private weak var eventImage: UIImageView!
typealias Event = (title:String, location:String, lat:CLLocationDegrees, long:CLLocationDegrees)
var eventArray = [Event]()
override func prepareForReuse() {
eventImage.image = nil
}
func lool() {
var event = Event(title: "a", location:"b", lat:5, long:4)
eventArray.append(event)
eventTitle.text = eventArray[0].title
}
}
那么就这么做吧:
var eventArray = [Event]()
这样称呼它:
for event in eventArray{
event.title = eventTitle.text
}
你应该这样做:
struct Event {
var title: String
var location: String
var lat: CLLocationDegrees
var long: CLLocationDegrees
}
class eventCell: UICollectionViewCell {
@IBOutlet private weak var eventTitle: UILabel!
@IBOutlet private weak var descriptionLabel:UILabel!
@IBOutlet private weak var eventImage: UIImageView!
typealias Event = (title:String, location:String, lat:CLLocationDegrees, long:CLLocationDegrees)
var eventArray = [Event]()
override func prepareForReuse() {
eventImage.image = nil
}
func lool() {
var event = Event(title: "a", location:"b", lat:5, long:4)
eventArray.append(event)
eventTitle.text = eventArray[0].title
}
}
eventArray
是数组,因此如果您想访问title,请尝试eventArray[index]。title
确切地说,您应该只向单个事件单元格添加一个事件,而不是整个事件数组。@Sulthan但是如果我想循环数组中的所有事件,该怎么办?我该怎么做?@RoryRozzerHodgson这就是UICollectionView
所做的。啊,好吧,我现在就试试,很抱歉问了noob问题,hahaThis和问题中的代码有同样的问题eventArray
是一个数组,它没有title
属性。如果他只想要一个事件,他可以这样做:var eventArray=event()
,如果他想要一个以上的事件,他无论如何都需要创建一些带有索引的数组,但这样可以更容易地在另一个类中恢复数据。