gpt4 book ai didi

ios - 从 Parse 查询空(未定义)行/列

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

我正在尝试从 Parse 查询一个类,但名为(coverImage)的 1 列可以为空(未定义)或包含图像,具体取决于用户是否上传图像!

我知道如何获取带有图像的行,但我还需要下载具有空 coverImage 的其他行,因为它包含数据...但到目前为止,我似乎无法获取没有它的空行崩溃...

所以我只是想知道即使类的 1 列为空,我怎样才能获取数据?

这是我的结构和查询:

 struct PostStruct {

var dataType : Int = 0 // 0 for text, 1 for picture
var date : NSDate
var username : NSString
var text : NSString?
var title : NSString?
var image : PFFile?
var uuid : NSString
var profileImage : PFFile
var caption : NSString?
var coverImage : PFFile?

init (dataTypeInit: Int, dateInit : NSDate, usernameInit: String, textInit: String, titleInit: String, uuidInit: String,profileImageInit: PFFile, coverImageInit: PFFile) {
dataType = dataTypeInit
date = dateInit
username = usernameInit
text = textInit
title = titleInit
uuid = uuidInit
profileImage = profileImageInit
coverImage = coverImageInit
}

init (dataTypeInit: Int, dateInit : NSDate, usernameInit: String, imageInit: PFFile, uuidInit: String, profileImageInit: PFFile, captionInit: String) {
dataType = dataTypeInit
date = dateInit
username = usernameInit
image = imageInit
uuid = uuidInit
profileImage = profileImageInit
caption = captionInit

}

查询:

 let query = PFQuery(className: "Posts")
query.whereKey("username", containedIn: self.followArray)
query.addDescendingOrder("createdAt")
query.findObjectsInBackgroundWithBlock({ (objects:[PFObject]?, error:NSError?) -> Void in
if error == nil {

self.posts.removeAll(keepCapacity: false)


for object in objects! {


if let _ = object.valueForKey("textPost") as? String {
if object.valueForKey("coverImage") != nil {


// this must be a text post
var post = PostStruct(dataTypeInit: 0,
dateInit: object.createdAt!,
usernameInit: object.valueForKey("username") as! String,
textInit: object.valueForKey("textPost") as! String,
titleInit: object.valueForKey("titlePost") as! String,
uuidInit: object.valueForKey("uuid") as! String,
profileImageInit: object.valueForKey("profilePicture") as! PFFile,
coverImageInit: object.valueForKey("coverImage") as! PFFile
)


post.comments = comments

self.posts.append(post)
} else {
print("jkh")
}

} else {
// this must be an image
var post = PostStruct(dataTypeInit: 1,
dateInit: object.createdAt!,
usernameInit: object.valueForKey("username") as! String,
imageInit: object.valueForKey("image") as! PFFile,
uuidInit: object.valueForKey("uuid") as! String, profileImageInit: object.valueForKey("profilePicture") as! PFFile, captionInit: object.valueForKey("caption") as! String)

post.comments = comments

self.posts.append(post)
}}

如果有人可以帮助我,先谢谢你!

最佳答案

如果通过添加 as?(可选展开)而不是 as!(显式展开)来设置该值,则可以选择分配该值。这样,如果有值,就会从 object.valueForKey() 中赋值,否则将为 nil

var post = PostStruct(
dataTypeInit: 0,
dateInit: object.createdAt!,
usernameInit: object.valueForKey("username") as! String,
textInit: object.valueForKey("textPost") as! String,
titleInit: object.valueForKey("titlePost") as! String,
uuidInit: object.valueForKey("uuid") as! String,
profileImageInit: object.valueForKey("profilePicture") as! PFFile,
coverImageInit: object.valueForKey("coverImage") as? PFFile
)

请注意,coverImageas 后面有一个问号。

同样对于您的 init,您需要将参数设置为可选:

init (dataTypeInit: Int, dateInit : NSDate, usernameInit: String, textInit: String, titleInit: String, uuidInit: String,profileImageInit: PFFile, coverImageInit: PFFile?) {
// your init code (omitted for brevity)
}

请注意 coverImageInit 参数的 PFFile 类型后面的问号。

关于ios - 从 Parse 查询空(未定义)行/列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989063/

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