1

そのため、プロジェクトで Magical Record を使用しており、次のことを試みています。

- (void)persistNewReadingWithOneA:(NSString *)oneA oneB:(NSString *)oneB{

    NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];

    FinalRead *reading1A = [FinalRead MR_createInContext:localContext];

    reading1A.a1 = oneA;
    reading1A.b1 = oneB;


    [localContext MR_saveOnlySelfAndWait];


}

ご覧のとおり、私は新しいエントリを保持しており、属性を追加して同じエントリを更新できるようにする必要があります。私は次のことを試しました:

- (void)updateReadingWithTwoA:(NSString *)twoA twoB:(NSString *)twoB{

    NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];

    FinalRead *reading2A = [FinalRead MR_createInContext:localContext];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstname ==[c] %@ AND lastname ==[c] %@"];
    FinalRead *finalRead = [FinalRead MR_findFirstWithPredicate:predicate inContext:localContext];

    reading2A.a2 = twoA;
    reading2A.b2 = twoB;


    [localContext MR_saveOnlySelfAndWait];


}

何か案は?

編集:

次のように JSON 応答からデータを取得しています。

- (void)fetchedData:(NSData *)responseData {

    if (self.buttonPressed){

        //parse out the json data
        NSError* error;
        NSArray* json = [NSJSONSerialization
                              JSONObjectWithData:responseData

                              options:kNilOptions
                              error:&error];

       NSString *string = [NSString stringWithFormat:@"%@", [json objectAtIndex:0]];

        [self persistNewReadingWithOneA:string
                                   oneB:nil];


    }else{

        //parse out the json data
        NSError* error;
        NSArray* json = [NSJSONSerialization
                              JSONObjectWithData:responseData

                              options:kNilOptions
                              error:&error];

        NSString *string = [NSString stringWithFormat:@"%@", [json objectAtIndex:0]];

        [self persistNewReadingWithOneA:nil
                                   oneB:string];



    }

}

そして、次のように新しく作成されたオブジェクトに保存します。

- (void)persistNewReadingWithOneA:(NSString *)oneA oneB:(NSString *)oneB{

    NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];

    FinalRead *reading1A = [FinalRead MR_createInContext:localContext];

    reading1A.a1 = oneA;
    reading1A.b1 = oneB;


    [localContext MR_saveOnlySelfAndWait];


}

次に、ViewController は別の質問にプッシュし、別の質問をします。ここで、さらに多くの JSON が解析されて保存されますが、前の ViewController で作成されたばかりの同じオブジェクトになります。NSManagedObject に次の属性 PER オブジェクトがあります。

@interface FinalRead : NSManagedObject

@property (nonatomic, retain) NSString *a1;
@property (nonatomic, retain) NSString *b1;
@property (nonatomic, retain) NSString *a2;
@property (nonatomic, retain) NSString *b2;
@property (nonatomic, retain) NSString *a3;
@property (nonatomic, retain) NSString *b3;
@property (nonatomic, retain) NSString *a4;
@property (nonatomic, retain) NSString *b4;

@end

基本的に、新しいviewControllerを変更するたびに、最終的なビューが使用されるまで同じオブジェクトに追加したいと考えています。

4

1 に答える 1