0
은 내가 컴파일러 경고 말하고있어클래스의 자체 기능 클래스의 권리를 참조 하시겠습니까?
NSArray * FetchResult = [self fetchEntities: entityForName sortKey: sortKey PredicateString:PredicateString];
에서 핵심 데이터
을에서 데이터를 가져 얻으려고 노력의 다리 작업을 많이 할 간단한 함수를 만들려면 그
- (NSArray *)fetchEntities: (NSString *) entityForName sortKey: (NSString *) sortKey PredicateString: (NSString *)PredicateString is not found.
하지만 누가 신경 써야합니까? 나는 [self fetchEntities ...]가 아닌 [self class] fetchEntities를 호출해야한다고 알고 있습니다.하지만 클래스 함수입니다. 자기는 이미 수업을 가리 킵니다. 문제가 무엇입니까?
+(NSManagedObject *)FirstfetchEntity: (NSString *) entityForName sortKey: (NSString *) sortKey PredicateString: (NSString *)PredicateString
{
NSArray * FetchResult = [self fetchEntities: entityForName sortKey: sortKey PredicateString:PredicateString];
if ([FetchResult count]==0)
{
return nil;
}
else
{
return [FetchResult objectAtIndex:0]; //return the First
}
}
+(NSArray *)fetchEntities: (NSString *) entityForName sortKey: (NSString *) sortKey PredicateString: (NSString *)PredicateString
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init]autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:entityForName inManagedObjectContext:[self managedObjectContext]];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:sortKey ascending:NO]autorelease];
NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortDescriptor, nil]autorelease];
[fetchRequest setSortDescriptors:sortDescriptors];
NSPredicate *predicate = [NSPredicate predicateWithFormat:PredicateString];
[fetchRequest setPredicate:predicate];
NSError *error = nil;
NSArray *fetchedObjects = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
// Handle the error
}
return fetchedObjects;
[pool release];
}
는 그것을 완료. 그러나 그것은 문제를 해결하지 못합니다. 어쨌든 문제는 후자라고 생각합니다. 어쩌면 잘못 입력 한 것일 수도 있습니다. –
원래 항목에 실수를하였습니다. 이 방법은 정적으로 만들어야합니다. 나는 그것을 위에 고쳤다. – ThomasW
또한 메서드를 선언하는 대신 두 번째 메서드의 구현을 첫 번째 메서드 앞에 넣기 만하면됩니다. 이 방법이 다른 곳에서 사용되지 않는 경우에 사용할 수 있습니다. – ThomasW