Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 核心数据,NSMutableArray包含NSManagedObject,插入数组的第一个NSManagedObject后,对象变为零_Sqlite_Core Data_Memory Management_Nsmutablearray_Nsmanagedobject - Fatal编程技术网

Sqlite 核心数据,NSMutableArray包含NSManagedObject,插入数组的第一个NSManagedObject后,对象变为零

Sqlite 核心数据,NSMutableArray包含NSManagedObject,插入数组的第一个NSManagedObject后,对象变为零,sqlite,core-data,memory-management,nsmutablearray,nsmanagedobject,Sqlite,Core Data,Memory Management,Nsmutablearray,Nsmanagedobject,我正在使用coreData插入NSManagedObject的数组,成功插入第一个对象后,NSMutableArray的第二个对象变为nil为什么? 下面是我的代码的快照: + (void)insertCategoryUsingCategoryArray:(NSMutableArray *)categoryArray { if(!categoryArray) return; for (int i=0;i<[categoryArray count]; i++)

我正在使用coreData插入NSManagedObject的数组,成功插入第一个对象后,NSMutableArray的第二个对象变为nil为什么? 下面是我的代码的快照:

+ (void)insertCategoryUsingCategoryArray:(NSMutableArray *)categoryArray
{
    if(!categoryArray)
        return;
    for (int i=0;i<[categoryArray count]; i++) {
        DataCategory *temp=(DataCategory *)[categoryArray objectAtIndex:i];

        DataCategory *categoryInfo=(DataCategory *)[NSEntityDescription insertNewObjectForEntityForName:@"DataCategory" inManagedObjectContext:_sing.managedObjectContext];

        [categoryInfo setCategoryId:temp.categoryId];
        [categoryInfo setName:temp.name];
        [categoryInfo setImgSrc:temp.imgSrc];

        NSError *error;
        if (![_sing.managedObjectContext save:&error]) {
            NSLog(@"An error occured while saving! shit : %@", [error localizedDescription]);
        }
        categoryInfo=nil;
    }
}
+(void)insertCategoryUsingCategoryArray:(NSMutableArray*)categoryArray
{
如果(!categoryArray)
返回;

for(int i=0;i
categoryArray
不应是此方法的参数。在您的设置中,此方法将数组作为方法专用的变量传递。除非返回某些内容,否则一旦离开此方法,此数组将包含什么内容是不可预测的

相反,您应该有一个由视图控制器管理的ivar

categoryArray = [NSMutableArray array];
viewDidLoad
中,然后使用此变量,不要将数组传递给该方法


附言:你可以通过消除谩骂来改进你的编程风格

仅当数组本身为零时,NSArray实例才应返回nil,这是因为向nil发送消息时返回nil。检查保存消息后categoryArray是否仍然存在。categoryArray仍然存在,但在for中的第一个循环后categoryArray中的所有DataCategory现在都为零