문제점을 해결하는 방법에 대한 조언을 받고 싶습니다. 그러나 내가 이미지를 얻을하지 않습니다구문 분석에서 컬렉션보기로 이미지로드 Swift
import UIKit
import Parse
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
//var my_array:[String] = []
//var my_array: [String] = [String]()
var imageResources : Array<UIImage> = []
//var query = PFQuery(className: "User")
var query2 = PFQuery(className: "User")
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//my_array = ["montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg","montagne.jpeg"]
query2.findObjectsInBackground{ (objects: [PFObject]?, error: Error?) -> Void in
if error == nil {
print("OK")
for object in objects! {
print("IN FOR")
let thumbNail = object["image"] as! PFFile
thumbNail.getDataInBackground({
(imageData: Data?, error: Error?) -> Void in
if (error == nil) {
print("IN SECOND IF")
let image = UIImage(data:imageData!)
self.imageResources.append(image!)
//let size = self.imageResources.count
//print(size)
}
})
}
}
}
//query.findObjectsInBackground{ (objects: [PFObject]?, error: Error?) -> Void in
// if error == nil {
// for object in objects! {
// self.my_array.append(object.object(forKey: "image") as! String)
// }
// }
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return imageResources.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
var cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollectionViewCell
cell.ImageView?.image = imageResources[indexPath.row]
return cell
}
}
내 응용 프로그램을 실행할 때이 오류가없는 : 나는, 나는 다음과 같은 코드를 사용하고 내 컬렉션보기로 구문 분석 서버에 저장된 이미지를로드 싶습니다 내 애플 리케이션에 컬렉션보기 내부. 이미지 내 구문 분석 서버에 있습니다 Parser Server Interface
난 그냥이 코드 내부 인쇄 print("IN FOR")
이 인쇄되지 않는 것을 파악, 그래서 생각이 여기에 뭔가 잘못이며 왜 내 앱 나던 부하 아무것도 먹으 렴 :
query2.findObjectsInBackground{ (objects: [PFObject]?, error: Error?) -> Void in
if error == nil {
print("OK")
for object in objects! {
print("IN FOR")
let thumbNail = object["image"] as! PFFile
thumbNail.getDataInBackground({
(imageData: Data?, error: Error?) -> Void in
if (error == nil) {
print("IN SECOND IF")
let image = UIImage(data:imageData!)
self.imageResources.append(image!)
//let size = self.imageResources.count
//print(size)
}
})
}
하지만 내 프로그램에서 수정 이미지를 사용하고 배열 (코드의 주석)에 저장하면 컬렉션보기에서 해당 이미지를 볼 수 있습니다. 누군가이 문제를 해결할 수 있도록 도와 줄 수 있습니까? 대단히 감사합니다.
조디.
데이터가 수집 된 후 콜렉션 뷰를 다시로드하려고 시도하면 콜렉션 뷰의 콘센트를 가져 와서 for 루프 이후 collectionview.realodData()를 수행하십시오. – Hosny
네, 그게 나에게 프로젝트를 청소하려고하거나 @IBOutlet var outletOfCollectionView : UICollectionView를 작성하십시오! 그런 다음 콜렉션 뷰 컨트롤을 첨부하십시오. – Hosny
이봐 요, 답해 주셔서 고맙습니다. 같은 일이 있습니다. for 루프 안에 들어 가지 않기 때문에 루프에 문제가있는 것 같아요. 인쇄하고 싶을 때. (print ("IN FOR")) 콘솔에 나타나지 않습니다. – Jordy