gpt4 book ai didi

ios - 如果数组缺少对象,如何添加要解析的字符串?

转载 作者:行者123 更新时间:2023-11-30 13:53:45 24 4
gpt4 key购买 nike

我有两个数组,歌曲(ret)和艺术家(ter)。我正在从解析中检索该信息,但是当每个数组中的计数彼此不匹配时,应用程序崩溃。我想避免这种情况,而不是应用程序崩溃,我希望将字符串“抱歉没有可用的艺术家”添加到缺少艺术家的行中。我该怎么做?

下面是数据库正确运行时的样子。 enter image description here

下面是数据库崩溃时的情况。这是我想添加“抱歉没有艺术家可用”的地方

enter image description here

下面是检索数据的代码。

 func getSongs(){
let retrieve = PFQuery(className: "Pointer")
retrieve.orderByDescending("createdAt")
retrieve.findObjectsInBackgroundWithBlock({
(objects: [AnyObject]?, error: NSError?) -> Void in
var object = objects as! [PFObject]
if(error == nil){

self.ret = []
self.ter = []

for i in 0...object.count-1{


if (object[i].valueForKey("user")!.objectId == currentUserID){

self.ret.append(object[i].valueForKey("title") as! String)
self.ter.append(object[i].valueForKey("artist") as! String)
print(self.ret)
print(self.ter)


}
}
}

})

}

最佳答案

这是因为 valueForKey("artist") 可能为 nil,并且您不能将 nil 放入数组中。

我建议您使用一个结构来保存歌曲数据,因为如果它们不同步,那么拥有两个独立的数组将导致轨道出现问题(确实很烦人的错误)

创建一个像这样的结构:

struct Song {
let title: String
let artist: String

init(titleString: String?, artistString: String?) {
if let titleStringUnwrapped = titleString {
title = titleStringUnwrapped
} else {
title = "Title not found"
}

if let artistStringUnwrapped = artistString {
artist = artistStringUnwrapped
} else {
artist = "Artist not found"
}
}
}

然后,您只需创建一个 [Song] 类型的数组并将新歌曲结构附加到其中即可:

if (object[i].valueForKey("user")!.objectId == currentUserID){
let newSong = Song(
titleString: object[i].valueForKey("title") as? String,
artistString: object[i].valueForKey("artist") as? String
)
}

关于ios - 如果数组缺少对象,如何添加要解析的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com