Swift 从 Parse sdk 检索图像
Swift Image retrieving from Parse sdk
我目前正在 Swift 中编写社交网络应用程序。在我的应用程序中,我有一个功能,即用户可以将带有图像的消息发送到时间轴。我希望能够检索图像并使用我的时间线内的 UIImageView 预览它。我编写了以下函数,但收到 "unexpected found nil while unwrapping a Optional Value" 错误。我希望社区中有人可以指出我做错了什么。
func loadImages()
{
var query = PFQuery(className: "imagesUploaded")
query.orderByDescending("objectID")
query.findObjectsInBackgroundWithBlock {
(objects:[AnyObject]!,error:NSError!) -> Void in
if error == nil {
let imagesobjects = objects as [PFObject]
for object : PFObject in objects as [PFObject] {
let image = object["filename"] as PFFile
image.getDataInBackgroundWithBlock {
(imageData:NSData!, error:NSError!) -> Void in
if error == nil {
let finalimage = UIImage(data: imageData)
self.timelineImages.append(finalimage!)
self.timelineimage.image = finalimage?
}
}
}
}
}
}
鉴于错误发生在这些行周围:
self.timelineImages.append(finalimage!)
self.timelineimage.image = finalimage?
我建议它是 finalimage
、timelineImages
或 timelineimage
。
对于最终图像,我会使用 if let
:
if let finalimage = UIImage(data: imageData) {
self.timelineImages.append(finalimage)
self.timelineimage.image = finalimage
}
仅当 finalimage 获得值时,这才安全地运行代码。
如果其中一个返回为 nil,您可以使用 ?
解决该问题。因此您的最终代码如下所示:
if let finalimage = UIImage(data: imageData) {
self.timelineImages?.append(finalimage)
self.timelineimage?.image = finalimage
}
我目前正在 Swift 中编写社交网络应用程序。在我的应用程序中,我有一个功能,即用户可以将带有图像的消息发送到时间轴。我希望能够检索图像并使用我的时间线内的 UIImageView 预览它。我编写了以下函数,但收到 "unexpected found nil while unwrapping a Optional Value" 错误。我希望社区中有人可以指出我做错了什么。
func loadImages()
{
var query = PFQuery(className: "imagesUploaded")
query.orderByDescending("objectID")
query.findObjectsInBackgroundWithBlock {
(objects:[AnyObject]!,error:NSError!) -> Void in
if error == nil {
let imagesobjects = objects as [PFObject]
for object : PFObject in objects as [PFObject] {
let image = object["filename"] as PFFile
image.getDataInBackgroundWithBlock {
(imageData:NSData!, error:NSError!) -> Void in
if error == nil {
let finalimage = UIImage(data: imageData)
self.timelineImages.append(finalimage!)
self.timelineimage.image = finalimage?
}
}
}
}
}
}
鉴于错误发生在这些行周围:
self.timelineImages.append(finalimage!)
self.timelineimage.image = finalimage?
我建议它是 finalimage
、timelineImages
或 timelineimage
。
对于最终图像,我会使用 if let
:
if let finalimage = UIImage(data: imageData) {
self.timelineImages.append(finalimage)
self.timelineimage.image = finalimage
}
仅当 finalimage 获得值时,这才安全地运行代码。
如果其中一个返回为 nil,您可以使用 ?
解决该问题。因此您的最终代码如下所示:
if let finalimage = UIImage(data: imageData) {
self.timelineImages?.append(finalimage)
self.timelineimage?.image = finalimage
}