-1

Core Data オブジェクトを操作するために MagicalRecord を使用しています。MR が配置した NSArray を使用して Core Data オブジェクトを取得する際に問題が発生しています...データを配列から取り出して NSManagedObject に入れることができないので、それを操作できます。これが私のコードです:

        //  create the predicate
    NSArray *apptDataArray = [NSMutableArray new];
    NSPredicate *predicate =  ([NSPredicate predicateWithFormat:@"((aStartTime > %@) AND (aStartTime <= %@))", startDate, endDate]);

    //  find all appointments with that selected date
    apptDataArray = [AppointmentInfo MR_findAllWithPredicate:predicate];

    //  now find the appointments for the selected date and put them in the schedule
    if(apptDataArray.count > 0) {
        for (NSManagedObject *AppointmentInfo in apptDataArray) {
            NSLog(@"\n\n-->apptDataArray: %@", apptDataArray);

        }
    }

これは、別のクラスにある AppointmentInfo の定義です。

@interface AppointmentInfo : NSManagedObject

@property (nonatomic, retain) NSDate * aStartTime;
@property (nonatomic, retain) NSDate * aEndTime;
@property (nonatomic, retain) NSString * aServiceTech;
@property (nonatomic, retain) NSString * aApptKey;
@property (nonatomic, retain) NSDate *aShortDate;

どういうわけか、返された配列にあるデータを取得して、AppointmentInfo に配置する必要があります。私はあらゆる種類の順列を試し、Google と SO を調べましたが、何も見つかりませんでした。私は困惑しています!どうすればいいのですか?

4

1 に答える 1

1

問題を正しく理解しているかどうかはわかりませんがapptDataArray、フェッチ リクエストの結果は単なるオブジェクトの配列でAppointmentInfoあるため、個々のオブジェクトにアクセスするには

AppointmentInfo *appt = [apptDataArray objectAtIndex:i]; // 0 <= i < apptDataArray.count

または結果配列のすべてのオブジェクトを列挙します

for (AppointmentInfo *appt in apptDataArray) {
    NSLog(@"startTime=%@, endTime=%@", appt.aStartTime, appt.aEndTime);
}
于 2013-02-28T22:52:01.590 に答える