在我的UIViewController中,我调用另一个类中的方法,它返回一个NSManagedObjects列表,我在数组中实例化一个NSManagedObjects列表。 下面是代码:为什么我的NSManagedObjects数组失去了它的属性?
fileprivate var albumList = [Album]()
private func loadAlbums() {
APIHandler().getUsersAlbums() {
albums in
self.albumList = albums
self.collectionView?.reloadData()
}
}
但是这引起了我阵列具有无属性一次loadAlbums已经完成,APIHandler的情况下清除。我解决了这个现在通过我的UIViewController有APIHandler的实例,并从那里调用该函数,就像这样:
let api = SpotifyAPIHandler()
fileprivate var albumList = [Album]()
private func loadAlbums() {
api.getUsersAlbums() {
albums in
self.albumList = albums
self.collectionView?.reloadData()
}
}
不过我不开心的与此有关。为什么会发生? 如何实例化一个全新的列表?
NSManagedObjects是一类,而不是一个指针。请重新说明你的问题。如果您想基于现有对象创建新的托管对象,则应将其复制。有关详细信息,请参阅:https://stackoverflow.com/questions/2730832/how-can-i-duplicate-or-copy-a-core-data-managed-object – ninjaproger
我没有看到任何明显的代码问题。 loadAlbums()完成后,您应该保存所有相册。你的意思是你的数组没有属性?你没有看到你的collectionView中有什么?你设置了你的collectionView.dataSource和collecitonView.delegate吗? – cloudcal
我的数组在每个位置都有一个有效的NSManagedObject,但是如果我尝试获取albumList [0] .name,例如,名称将是零 –