2011-04-24 79 views
0

我在iphone中使用核心数据的数据库。我想只搜索一列信息。 我的示例代码是;iphone sdk - 核心数据:关于谓词,实体等

#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与谓词搜索(它有组ID的),但TempArr返回数据库中的所有数据,我怎么能得到的只是一点的信息?

回答

0

,你将不得不使用refrences像

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

它不工作:S – relower 2011-04-24 15:22:13

0

你是什么SendGrupList?如果它是一个数组,它应该可以工作。 这里是一个工作示例,其中SendGrupListNSMutableArray

[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];