とりあえず、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 件のコメント:
コメントを投稿