إرجاع NSFetchRequest العدد الصحيح من الكائنات، ولكن كل كائن يحتوي على سمات NIL

StackOverflow https://stackoverflow.com/questions/2406021

  •  18-09-2019
  •  | 
  •  

سؤال

لا أستطيع معرفة سبب حدوث ذلك. يمكنني أن أضيف إلى السياق. ولكن عندما أسترد الكائنات، فإنه بإرجاع العدد الصحيح من الكائنات ولكن سمات الكائنات فارغة.

أقوم بإضافة 3 مثيلات مع هذا الرمز:

+ (BOOL) AddStoreWithID: (NSNumber *) Latitude Latitude: (NSNumber *) Latitude Longitude: (NSNumber *) Longitude Name: (NSSTRING *) الاسم {

Stores *store = (Stores *)[NSEntityDescription
                    insertNewObjectForEntityForName:@"Stores" 
                    inManagedObjectContext:[[SharedResources instance] managedObjectContext]];

store.ID = ID;
store.Latitude = latitude;
store.Longitude = longitude;
store.Name = name;
NSError *error;
if(![[[SharedResources instance] managedObjectContext] save:&error])
{
    //Handle the error
    return NO;
}
return YES;

} أحصل على النتيجة: 2010-03-07 19: 19.03-07 19: 19.060 GamePouch_iphone [11337: 207] اسم المتجر هو Starbucks (GDB) متابعة 2010-03-07 19: 19.933 Gamepouch_iphone [11337: 207] اسم المتجر هو dunkin Donuts (GDB) متابعة 2010-03-07 19: 19: 19.717 gamepouch_iphone [11337: 207] اسم المتجر هو Krispy Kreme

لقد أكدت أن هذا الرمز يزور ثلاث مرات وليس أي من السمات لا شيء.

ثم عندما أحاول استرجاعها، يمكنني استخدام التعليمات البرمجية التالية:

+ (nsmutablerray *) fetchallobjects {

NSFetchRequest *request;
request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Stores" inManagedObjectContext:[[SharedResources instance] managedObjectContext]];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"ID" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error;
NSMutableArray *array = [[[SharedResources instance] managedObjectContext] executeFetchRequest:request error:&error];
[request release];
[sortDescriptor release];
[sortDescriptors release];
for(int i=0;i<3;i++)
{
    Stores *tempStore = (Stores *)[array objectAtIndex:i];
    NSLog(@"store name is %@",[tempStore Name]);
}
return array;

}

أحصل على النتيجة: 2010-03-07 19: 21: 00.504 Gamepouch_iphone [11337: 207] اسم المتجر هو (NULL) (GDB) متابعة 2010-03-07 19: 21: 01.541 Gamepouch_iphone [11337: 207] اسم المتجر (NULL) (GDB) تابع 2010-03-07 19: 21: 02.503 Gamepouch_iphone [11337: 207] اسم المتجر هو (NULL)

شكرا لقراءتك. أي مساعدة سيكون محل تقدير كبير.

شكرا bakhtiyar uddin.

هل كانت مفيدة؟

المحلول

أرى ما هي المشكلة هي: بالنسبة ل NSManagedObjects، علينا استخدام ValueForkey

يجب أن استخدم [tempstore valueforkey: @ اسم "] بدلا من [اسم tempstore

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top