为什么我的NSManagedObjects数组会丢失其属性?

时间:2017-07-06 18:10:32

标签: ios swift pointers nsmanagedobject

在我的UIViewController中,我在另一个类中调用一个方法,该方法返回一个NSManagedObjects列表,我在数组中实例化。 这是代码:

$request->file('image')->storeAs('public', 'example.jpg');

但是一旦loadAlbums完成并且APIHandler的实例被清除,这导致我的数组具有nil属性。我现在通过在我的UIViewController上有一个APIHandler实例并从那里调用函数来解决这个问题,如下所示:

fileprivate var albumList = [Album]()

private func loadAlbums() {
    APIHandler().getUsersAlbums() {
        albums in
        self.albumList = albums
        self.collectionView?.reloadData()
    }
}

我对此并不满意。为什么会这样? 如何实例化一个全新的列表?

1 个答案:

答案 0 :(得分:0)

我认为正在发生的事情是,您每次拨打APIHandler loadAlbums()时都会创建func的新实例,而您可以执行static } APIHander APIHander中的class的引用,如此

class APIHander: NSObject {
    static let handler = APIHander()
}

然后你会像这样调用你的API

private func loadAlbums() {
    APIHandler.handler.getUsersAlbums() {
        albums in
        self.albumList = albums
        self.collectionView?.reloadData()
    }
}