iphone SDK - Основные данные: о предикате, сущности и т. д. - PullRequest
0 голосов
/ 24 апреля 2011

я использую базу данных с основными данными в iphone.Я хочу получить только одну информацию столбца с поиском .. Мой пример кода;

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>


@interface Groups : NSManagedObject {
   @private
}
@property (nonatomic, retain) NSString * GroupID;
@property (nonatomic, retain) NSString * userID;
@property (nonatomic, retain) NSString * memberID;
@property (nonatomic, retain) NSString * memberNAME;
@property (nonatomic, retain) NSString * memberLNAME;
@property (nonatomic, retain) NSString * memberNUMBER;
@property (nonatomic, retain) NSString * memberBIRTH;
@property (nonatomic, retain) NSString * memberMARRIAGE;

@end


-(void)GetDataFromDB{


        app = (CepostaAppDelegate*)[[UIApplication sharedApplication] delegate];

        root = (RootViewController*)
                   ([app.navigationController.viewControllers objectAtIndex:0]);

        NSFetchRequest *request = [[NSFetchRequest alloc] init];

        NSEntityDescription *entity = [NSEntityDescription 
                  entityForName:@"Groups"
                  inManagedObjectContext:app.managedObjectContext];


        NSPredicate *predicate = [NSPredicate 
                  predicateWithFormat:@"(GroupID IN %@)",SendGrupList];

        [request setEntity:entity];
        [request setPredicate:predicate];

        NSError *error; 
        NSMutableArray *TempArr = [[NSMutableArray alloc] initWithArray:
            [app.managedObjectContext executeFetchRequest:request error:&error]];

        [request release];

        for (gObje in TempArr) { //gObje is Groups's Object
            NSString *GroupsMemNum = [[NSString alloc] 
                                    initWithString:gObje.memberNUMBER];
            [gGonder.TeLList addObject:GroupsMemNum];
            NSLog(@"%@",GroupsMemNum);
            [GroupsMemNum release];
        }  
}

Я выполняю поиск с использованием предиката в SendGrupList (он имеет идентификаторы группы), но TempArr возвращает все данные в БД, как я могу получить информацию только об одном столбце?

Ответы [ 2 ]

0 голосов
/ 03 марта 2012

Какой у тебя SendGrupList? Если это массив, он должен работать. Вот рабочий пример, где SendGrupList - это NSMutableArray

[SendGrupList addObject:data]; 
    NSError *error = nil;
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSPredicate *predicate = [NSPredicate 
                         predicateWithFormat:@"GroupID IN %@",SendGrupList];

    [fetchRequest setPredicate:predicate];

    NSEntityDescription *entity = [NSEntityDescription 
                                   entityForName:@"Groups"
                                inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];
    NSArray *fetchedObjects = [managedObjectContext 
                              executeFetchRequest:fetchRequest error:&error];
0 голосов
/ 24 апреля 2011

вам нужно будет использовать ссылки вроде

(refGroupTableName.groupId IN %@"),SendGrupList
...