0

PFQueryTableViewController を使用して、テーブルビューにデータをロードしようとしています。

編集: すぐ下の写真へのリンク: http://i61.tinypic.com/x5626a.png

私の知る限り、すべてが正しく設定されていますが、シミュレーターで実行すると、画像やテキストが表示されません。ただし、クエリは正しい数のセルをロードします。「Post」クラスには 14 個のオブジェクトがあり、シミュレーターは 14 個のテーブル セルをロードしますが、それらはすべて上の写真のように表示されます。また、テーブルビューには 2 つのラベルがあり (属性インスペクターにテキストを事前に入力しました)、そのテキストも表示されません。

編集2:

セルにテキストを表示する方法はわかりましたが、画像を表示する方法がわかりません。これは私の cellForRowatIndexPath の私のコードです:

   override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject!) -> PFTableViewCell? {
    //4
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell1", forIndexPath: indexPath) as! DataCell

    let Postobject1 = object as! Post

    cell.shortDescriptionLabel.text = Postobject1["short_decription"] as? String
    cell.userUsername.text = Postobject1["user2"] as? String

    var thumbnail: PFFile = Postobject1["fichierimage"] as! PFFile
    cell.contentImage.file = thumbnail




    return cell

  }

コードは正しく機能して、文字列 shortDescriptionLabel と userUserName を表示します。しかし、画像をロードすることはできません。私はこのコードを取りました:

    var thumbnail: PFFile = Postobject1["fichierimage"] as! PFFile
    cell.contentImage.file = thumbnail

Parse サイトから: http://i60.tinypic.com/2ziq0hu.png

ただし、「swift」をクリックすると、迅速な例がないと言われたため、それがコードの翻訳です。Obj-C でプログラミングしたことがないので、間違って翻訳したのかもしれません。誰かが迅速な翻訳を手伝ってくれませんか?

4

1 に答える 1

0

約9時間後、ようやく答えを見つけました。将来これを見つけた人のために、すべての詳細をここに投稿します。私がしたように、彼らが苦戦しないことを願っています:)

目標は、Parse のクラス「Post」から 2 つの画像と 2 つの文字列を読み込み、これらを PFTableViewCell に表示することでした。これらの画像の 1 つは、"Post" クラスのポインターからのリレーショナル データからのものです。

「Post」PFObject クラスのコードは次のとおりです。

        import Foundation
        import Parse
        import ParseUI
        import UIKit

    class Post: PFObject, PFSubclassing {

@NSManaged var image: PFFile

@NSManaged var short_decription: String?




//1
class func parseClassName() -> String {
    return "Post"
}

//2
override class func initialize() {
    var onceToken: dispatch_once_t = 0
    dispatch_once(&onceToken) {
        self.registerSubclass()
    }
}

override class func query() -> PFQuery? {
    let query = PFQuery(className: Post.parseClassName())
    query.includeKey("from_user")
    query.orderByDescending("createdAt")
   // query.whereKey("early_semester", equalTo: true)
    return query
}

   init(short_decription: String?) {
    super.init()








}

 override init() {
    super.init()



    }

 }

私のtableCellのコードは次のとおりです。

    import UIKit
    import ParseUI
    import Parse

  class DataCell: PFTableViewCell {


@IBOutlet weak var shortDescriptionLabel: UILabel!

@IBOutlet weak var UserProfilePhoto: PFImageView!

@IBOutlet weak var contentImage: PFImageView!
@IBOutlet weak var userUsername: UILabel!



 }

これが私の PFQueryTableViewController のコードです。

     import UIKit
     import Parse
     import ParseUI
     import Foundation

     class new: PFQueryTableViewController {

// MARK: - Lifecycle
override func viewDidLoad() {
    super.viewDidLoad()
   loadObjects()
}

//1
override func viewWillAppear(animated: Bool) {

    loadObjects()

}

//2
override func queryForTable() -> PFQuery {
    let query = Post.query()
    return query!

}

//3
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject!) -> PFTableViewCell? {
    //4
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell1", forIndexPath: indexPath) as! DataCell



    let PostObject = object as! Post


     // assign label in tablecell text from my "Post" class 
    cell.shortDescriptionLabel.text = PostObject["short_decription"] as? String
    cell.userUsername.text = PostObject["user2"] as? String

    // loading image saved in my "Post" class
    var thumbnail: PFFile = PostObject["fichierimage"] as! PFFile
    cell.contentImage.file = thumbnail
    cell.contentImage.loadInBackground()


    /* loading image that is relational data. My "Post" class has
   a pointer column "from_user" that points to the "User" class,
     and this is loading the profile photos from the User class. 
   this is possible because I used  "query.includeKey("from_user")" in my query.*/

    var profilePhoto: PFFile = PostObject.objectForKey("from_user")!.objectForKey("profilePicture") as! PFFile
    cell.UserProfilePhoto.file = profilePhoto
    cell.UserProfilePhoto.loadInBackground()

    return cell

 }



  }
于 2015-09-11T15:17:30.133 に答える