합니다 (coredata 페치에 대한 magicrecord 사용) 다음 코드를 감안할 때 :NSArray를 반환하는 NSArray valueForKey?
// Get all of our apps.
NSArray * applications = [Application MR_findAllInContext: [NSManagedObjectContext MR_context]];
Application * application = [applications firstObject];
NSLog(@"Test: %@", application.applicationId);
NSArray * applicationIds = [applications valueForKey: @"applicationId"];
NSLog(@"Application ids: %@", applicationIds);
나는 다음과 같은 로그를 얻을 :
Test: 586001240 Application ids: ( "<null>", "<null>" )
나는 applications
배열은 두 개의 항목이 포함되어 있음을 알 수있다. 각각 고유 한 applicationId
속성이 있습니다. valueForKey
에 대한 전화가 왜 2 개의 null을 반환하는지 이해할 수 없습니까? 대신 두 개의 NSNumber 객체를 가져야합니다.
최근 valueForKey (이전에는 고유 항목을 얻으려고 열거 형을 사용하고 항목을 배열에 추가)에 대해 알아 냈습니다. 가독성을 높이기 위해 valueForKey를 사용하려고합니다. 분명히 나는 무언가를 정확하게 이해하지 못하고있다. 내가 어디로 잘못 가고 있는지에 대한 조언?
편집 - 자세한 내용은 :
Application
클래스는 핵심 데이터 모델을 통해 생성됩니다. 인터페이스는 다음과 같이 정의됩니다.
@interface Application : NSManagedObject
@property (nonatomic, retain) NSNumber * applicationId;
@property (nonatomic, retain) NSString * name;
@end
'NSDictionary'를 사용하고 싶습니까? 나는 또한 valueForKey : 메소드가 KVO에 속하고 그것을 사용하는 것처럼 사용할 수 없다고 생각한다. – chris13
'Application'과 같은 인터페이스는 무엇입니까? 핵심 가치 준수입니까? – WDUK
코드가 멋지 기 때문에 Application.applicationId 속성의 구현과 선언을 확인해야합니다. 단지 표준 코어 데이터 속성이라면 오류가 발생할 수 있습니다. – jrturton