在我的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()
}
}
我对此并不满意。为什么会这样? 如何实例化一个全新的列表?
答案 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()
}
}