我有一個名爲SLCollectionViewModel
的類,如果啓動,它將獲取Core Data的最新條目。到目前爲止,初始視圖沒有問題。集合視圖將正確顯示可見條目(並在日誌中顯示它們)。在UICollectionViewController中釋放實例
但是,當我嘗試滾動視圖或嘗試顯式調用[self.collectionView reloadData]
時會出現問題。錯誤日誌:
-[_PFArray retain]: message sent to deallocated instance 0x8de9ab0
我覺得我的self.viewModel
對象被釋放的地方,但我無法找出什麼地方錯了我的做法。這裏是我的- (void)viewDidLoad
方法:
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewModel = [SLCollectionViewModel new];
[self.collectionView reloadData];
}
這裏是我的SLCollectionViewModel
類:
- (instancetype) init {
self = [super init];
if(!self) return nil;
_managedObjectContext = [[SLCoreDataStack defaultStack] managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"SLPost"
inManagedObjectContext:_managedObjectContext];
[fetchRequest setEntity:entity];
// The _posts in an NSArray that saves all my NSManageObject
// which will be used to populate the collection view.
_posts = [_managedObjectContext executeFetchRequest:fetchRequest
error:nil];
return self;
}
如何爲'self.viewModel'的'@ property'聲明? – Rich
它是'@property(nonatomic,strong)SLCollectionViewModel * viewModel;' – sayzlim
當程序暫停並激活調試器時,輸出內容地址說明被解除分配了嗎?即從你原來的問題'po 0x8de9ab0'。 也出於興趣是崩潰一致,每次都有相同的錯誤信息? – Rich