【发布时间】:2015-06-18 14:42:53
【问题描述】:
我正在使用我的应用程序中的核心数据。我正在使用以下函数在核心数据数据库表中删除和插入数据。它第一次运行良好。当我第二次打电话时,它会抛出 EXC BAD ACCESS。 任何人都可以帮助解决这个问题。
@implementation abc
@synthesize delegate;
Dynamic *dbObjDynamic;
-(void) callingcoredata:(NSInteger) family type:(NSInteger) type List:(NSString *) list
{
if ([AppManager getAppMode] == Online)
{
statdyn = type;
arrDyanmic= [[NSMutableArray alloc]init];
dbObjDynamic = [[Dynamic alloc]init];
[dbObjDynamic DeleteRecordControlsFromTable:listtype];
}
}
在 Dynamic.m 中
-(void)DeleteRecordControlsFromTable:(NSString *)listtype
{
NSManagedObjectContext *deleteContext = [self ManagedObjectContext];
NSFetchRequest *fetch = [[NSFetchRequest alloc] init];
[fetch setEntity:[NSEntityDescription entityForName:@"Dynamic" inManagedObjectContext:deleteContext]];
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"listType == %@", listtype];
[fetch setPredicate:predicate];
NSError * error = nil;
NSArray * lookupdata = [deleteContext executeFetchRequest:fetch error:&error];
for(NSManagedObject *info in lookupdata)
{
[deleteContext deleteObject:info];
[deleteContext save:&error];
}
}
它在dbObjDynamic = [[Dynamic alloc]init]; 处抛出错误
提前致谢。
【问题讨论】:
-
能贴出动态初始化方法的代码吗?
-
@SergiiMartynenkoJr - 它只是初始化对象。没有来源。是否必须添加代码进行初始化?
-
如果您确信那里没有任何事情发生,您可以避免在此处发布。但是,我看不出有什么原因,为什么它在那个代码点上失败了。
-
您是否尝试将
Dynamic *dbObjDynamic移动到您初始化它的位置?您可以尝试另一件事,添加检查if (dbObjDynamic == nil) { dbObjDynamic = [[Dynamic alloc]init]; }这样您就不会每次都初始化它 -
好的..谢谢你的回复..我会试试的..
标签: ios objective-c core-data exc-bad-access nsmanagedobject