append to array from different class in swift

走远了吗. 提交于 2019-12-11 12:52:07

问题


Im trying to append to my array

var feedArray: [AnyObject] = []

from another class. I have 2 classes:

class FeedViewController: UIViewController, UICollectionViewDataSource,
     UICollectionViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

      var feedArray: [AnyObject] = []

and

class AddEditViewController: UIViewController, NSFetchedResultsControllerDelegate,
      UIImagePickerControllerDelegate, UINavigationControllerDelegate {

I want to in my "AddEditViewController" append the array "feedArray". But I'm not able. I have tried:

FeedViewController().feedArray.append("TheObjectImTryingToAdd")

I even tried to put

print(FeedViewController().feedArray.count)

but the result is always 0 even though the array have 3 objects.

what I'm i doing wrong? if you want to see detailed code, this is my previous question: why won't my main viewcontroller update when i segue back?


回答1:


So, After playing around a little bit and trying to learn, I found the solution

First of all, add the array outside of the class so it is global, so instead of:

import UIKit
import CoreData
import MobileCoreServices

class FeedViewController: UIViewController, UICollectionViewDataSource,
UICollectionViewDelegate, UIImagePickerControllerDelegate,
UINavigationControllerDelegate {

   @IBOutlet weak var collectionView: UICollectionView!
   var feedArray: [AnyObject] = []

change it so you have:

import UIKit
import CoreData
import MobileCoreServices

 var feedArray: [AnyObject] = []

class FeedViewController: UIViewController, UICollectionViewDataSource,
UICollectionViewDelegate, UIImagePickerControllerDelegate,
UINavigationControllerDelegate {

  @IBOutlet weak var collectionView: UICollectionView!

And instead of using

FeedViewController().feedArray.append(feedItem)

Now you can use:

feedArray.append(feedItem)

What the problem was, is that every time i used : "FeedViewController().fee..." I created a new instance, so i actually didn't append the array properly.

I hope it helped.



来源:https://stackoverflow.com/questions/33969558/append-to-array-from-different-class-in-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!