NSManagedObject提供对其的访问NSManagedObjectContext http://developer.apple.com/library/mac/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObject_Class/Reference/NSManagedObject.html#//apple_ref/occ/instm/NSManagedObject/managedObjectContext,但它保留它吗?
根据“在 iOS 上传递 NSManagedObjectContext”作者:Marcus Zarra http://www.cimgf.com/2011/01/07/passing-around-a-nsmanagedobjectcontext-on-the-iphone/, "The NSManagedObject
保留对其的引用NSManagedObjectContext
在内部,我们可以访问它。”
Zarra 是如何知道这一点的?他是正确的吗?
我这么问是因为我想知道是否NSManagedObjectContext
将dealloc
编辑于tearDown
方法如下。 (我在用着可可厂 https://github.com/acani/CocoaPlant.)
#import <SenTestingKit/SenTestingKit.h>
#import <CocoaPlant/CocoaPlant.h>
#import "AccountUser.h"
@interface AccountUserTests : SenTestCase {
AccountUser *accountUser;
}
@end
@implementation AccountUserTests
- (void)setUp {
accountUser = [AccountUser insertIntoManagedObjectContext:
[NSManagedObjectContext contextWithStoreType:NSInMemoryStoreType error:NULL]];
}
- (void)tearDown {
[accountUser delete];
}
- (void)testFetchWithLinkedAccountUserID {
// Tests go here...
}
@end
NSManagedObject 不持有对其 NSManagedObjectContext 的强引用。我已经在一个测试项目中检查过这一点。
因此,只要使用 NSManagedObjectContext 的对象,就应该保持对它的强引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)