问题
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