Ich versuche, ein Array von UITableViewCells zu erstellen, und bevor ich die Zellen anfügen, muss ich sie mit Parametern initialisieren. Wenn ich versuche, die Zelle zu initialisieren, bekomme ich einen Fehler, dass die zwei Eigenschaften in der Klasse nie definiert wurden. Aber nachdem ich sie definiert habe, bekomme ich einen Fehler, dass die Variablen verwendet wurden, bevor sie initialisiert wurden. Hier ist die KlasseInitialisieren von benutzerdefinierten UITableViewCell mit Parametern
class SimpleCellClassTableViewCell: UITableViewCell {
@IBOutlet var artist: UILabel!
@IBOutlet var picture: UIImageView!
@IBOutlet var songTitle: UILabel!
@IBOutlet var sender: UILabel!
var audioFile: AnyObject? = nil
var mediaType: songType! = nil
var id: NSNumber! = nil
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
func configureCell(Title title: NSString?,
File audioFile: AnyObject?,
Type mediaType: songType,
Artist artist: NSString?,
Image image: UIImage?,
Sender sender: NSString?,
ID id: NSNumber?) -> UITableViewCell {
self.audioFile = audioFile
self.mediaType = mediaType
if let newSender = sender{
self.sender.text = newSender as String
}
if let newTitle = title{
self.songTitle.text = newTitle as String
}
if let newImage = image {
self.picture.image = newImage
}
if let newArtist = artist {
self.artist.text = newArtist as String
}
if let newId = id {
self.id = newId as NSNumber
}
return self
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
Und das ist, wo Im initialisieren und fügen Sie dann Werte, um es mit configure Zelle Methode versuchen:
let newSongCell = SimpleCellClassTableViewCell.init(style: .Default, reuseIdentifier: "SimpleCell")
newSongCell.configureCell(Title: setTitle,
File: setAudioFile,
Type: setMediaType,
Artist: setArtist,
Image: setImage,
Sender: setSender,
ID: setId)
Die Parameter für Datei- und Typ sind diejenigen, die gleichen Fehler zu werfen . Auch wenn ich den Initialisierer mit NSCoder verwenden soll, was soll ich als Argument angeben?
var mediaType: songType! = null // Überprüfen Sie diese Codezeile. Ändern Sie zu var mediaType: songType? = Null – Bharath