1

私は、単純に思えるこの問題の答えを探すのに何時間も費やしました。

だからこれらは私の解析メソッドです:

-(void)ParseJSON {

    NSURL *URL=[[NSURL alloc]initWithString:@"http://www.foo24.com/kokos"];
    NSData* data = [NSData dataWithContentsOfURL:
                    URL];
    [self performSelectorOnMainThread:@selector(JSONtoArrays:)
                           withObject:data waitUntilDone:YES];
}
-(void)JSONtoArrays:(NSData *)responseData {

    NSError* error;
    NSDictionary* json = [NSJSONSerialization
                          JSONObjectWithData:responseData

                          options:kNilOptions
                          error:&error];

    NSMutableArray *fetchCustomersArray=[json objectForKey:@"Customers"];
    NSMutableArray *fetchOrdersArray=[json objectForKey:@"Orders"];

    [self setJSONCustomers:fetchCustomersArray];
    [self setJSONOrders:fetchOrdersArray];

}

これはデータベースメソッドからのフェッチです。

-(void)fetchOrders{


    NSManagedObjectContext *managedObjectContext = self.managedObjectContext;

    if (managedObjectContext == nil) 
    { 
        managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
    }

    NSEntityDescription *orderEntity=[NSEntityDescription entityForName:@"OrderEntity" inManagedObjectContext:managedObjectContext];

    NSPredicate *NonDelivered =
    [NSPredicate predicateWithFormat:@"orderDelivered == NO"];

    //setup fetch request
    NSFetchRequest *request=[[NSFetchRequest alloc]init];
    [request setEntity:orderEntity];
    [request setPredicate:NonDelivered];


    //fetch
    NSError *error;
    NSMutableArray *FetchResultsArray=[[managedObjectContext executeFetchRequest:request error:&error]mutableCopy];

    [self setDbOrders:FetchResultsArray];
    [dbOrders addObjectsFromArray:JSONOrders];
    NSLog(@"%@",[[dbOrders objectAtIndex:0]valueForKey:@"orderName"]);
    [self addOrders:dbOrders];
}

私がやりたいのは、Core Dataから未配信のアイテムを配列として取得してから、新しい解析済み配列を取得し、データベースからすべてのエントリを削除し、2つの配列をマージして、データベースに戻すことです。これを行うもっと簡単な方法があるかどうかはわかりません。

4

1 に答える 1

0

これを行うもっと簡単な方法があるかどうかはわかりませんが、

がある。

インターネットからの配列にデータベースに追加する注文が含まれていると仮定すると、これらの注文を繰り返し処理してデータベースに追加するだけです。

簡単ですよね?

于 2012-06-08T12:42:17.690 に答える