自定义UITableView部分不止一次添加

时间:2015-10-24 03:12:14

标签: ios swift uitableview

我已经创建了一个自定义类,它将节标题和节内容添加到UITableViewCell。 我已经设法让各个部分出现,但由于一些奇怪的原因,每个部分都被添加了5次。

部分项目类

  class MainSectionItems: SectionItems {
            override init() {
                //super.init()
            }
        }
        class SectionItems:NSObject{
            var sections:[String] = []
            var artists:[[String]] = []
            var songs:[[String]] = []
            var imgUrl: [[String]] = []
            func addSection(section: String, artist:[String], song: [String], imageUrl: [String]){
                sections += [section]
                artists = artists + [artist]
                songs = songs + [song]
                imgUrl = imgUrl + [imageUrl]
            }
        }

MainViewController

    override func viewDidLoad() {
       getData{
                (msg) in
                self.menuItems.addSection("Featured Post", artist: self.artistArray, song: self.songNameArray, imageUrl: self.imgUrls)
              self.tVewCell.reloadData()
                self.collectionView.reloadData()
                    SwiftSpinner.hide()
                }
}

getData是一个从parse.com 检索5个对象的方法 geData功能

func getData ( completionHandler: (String) -> ()) -> () {
        let query = PFQuery(className:"chordBankA")
        query.orderByDescending("Artist")
        query.limit = 5
        query.findObjectsInBackgroundWithBlock {
            (objects: [PFObject]?, error: NSError?) -> Void in
            if error == nil {
                for object in objects! {
                    self.artistArray.append((object.objectForKey("Artist")) as! String)
                    self.songNameArray.append(((object.objectForKey("Song")) as! String))
                    self.imgUrls.append(((object.objectForKey("imgUrl")) as! String))
        completionHandler("0");
                }
            } else {
                print("Error: \(error!) \(error!.userInfo)")
                completionHandler("1");
            }
        }

1 个答案:

答案 0 :(得分:1)

感谢您分享getData代码。你的问题是你在内部调用你的完成块for循环。把它放在外面循环,你应该很好!