【问题标题】:append to array from different class in swift快速追加到来自不同类的数组
【发布时间】:2016-03-02 08:59:14
【问题描述】:

我正在尝试追加到我的数组

var feedArray: [AnyObject] = []

来自另一个班级。 我有 2 节课:

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

      var feedArray: [AnyObject] = []

class AddEditViewController: UIViewController, NSFetchedResultsControllerDelegate,
      UIImagePickerControllerDelegate, UINavigationControllerDelegate {

我想在我的“AddEditViewController”中附加数组“feedArray”。 但我做不到。 我试过了:

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

我什至试着把

print(FeedViewController().feedArray.count)

但即使数组有 3 个对象,结果也始终为 0。

我做错了什么?如果你想看详细代码,这是我之前的问题:why won't my main viewcontroller update when i segue back?

【问题讨论】:

  • FeedViewController() 创建视图控制器的新实例。您必须访问正在呈现的视图控制器,而不是创建一个新的。
  • 谢谢@adam 我实际上是在您发布时创建答案,:) 谢谢

标签: swift append viewcontroller controllers


【解决方案1】:

所以,在玩了一会并尝试学习之后,我找到了解决方案

首先,将数组添加到类之外,使它是全局的,所以不是:

import UIKit
import CoreData
import MobileCoreServices

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

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

改变它,这样你就有了:

import UIKit
import CoreData
import MobileCoreServices

 var feedArray: [AnyObject] = []

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

  @IBOutlet weak var collectionView: UICollectionView!

而不是使用

FeedViewController().feedArray.append(feedItem)

现在你可以使用了:

feedArray.append(feedItem)

问题是,每次我使用:“FeedViewController().fee...”时,我都创建了一个新实例,所以实际上我没有正确附加数组。

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2011-08-10
    • 2015-06-10
    • 2021-11-13
    相关资源
    最近更新 更多