2012年6月15日金曜日

idの取り扱い

最近仕事がハードでぜんぜんxcodeできない。
とりあえず、idの重複は回避。
- (void)apiTicket:(OAServiceTicket *)ticket didFinishWithData:(NSData *)data{
 NSDictionary *bd=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
 if(lastid!=0&&lastid<=[[[bd valueForKeyPath:@"response.posts.id"]objectAtIndex:0]longLongValue]){
  offset++;[self reqJSON];return;
 }
 //以下略
}
あとはoffsetが250を超えた場合の処理。 まずは250個のidがそれぞれどれくらい離れてるかの平均をとって、それにlimitの件数をかけた値をlastidから引いてsince_idにセットしてreqJSONして、帰ってきたJSONの一番上のidがlastidより古ければ平均を足して再度reqJSONしてlastid(またはそれより新しいid)と重複したら重複した分だけ削ってパースしてpostのviewを作る感じでいけば、postの欠落は防げるかな。とりあえず平均を取るところまで。
- (void)npost{
 if([pvlayer viewWithTag:now]==[pvArr lastObject]) return;
 [[pvlayer viewWithTag:now++] removeFromSuperview];
 [pvlayer addSubview:[pvArr objectAtIndex:now-1]];
 [bprev removeFromSuperview]; 
 [self na];
 if(now+10>[contArr count]){
  offset+=limit;
  if(offset<=250) [self reqJSON];
  else{ 
   if(iddiff==0) iddiff=([[idArr objectAtIndex:0]longLongValue]-[[idArr lastObject]longLongValue])/([idArr count]-1);
   NSLog(@"%lld",iddiff);
  }
 }
}
できた。
今日は丹後半島出張で、帰ってきて福島のみつ星製麺所で濃厚らーめん半玉増し白ごはん。濃い。今年100杯超えてるのでペースは押さえ気味(100杯目は姫路の丸十)。今月5杯目。しかも夜久々にランした。10km弱。半年ラーメン三昧だった分、絞るぞ。

0 件のコメント:

コメントを投稿