iPhone上的Facebook API:如何比较两组返回的状态更新
我正在构建一个应用程序,需要用户的状态更新。我将状态更新放入一个数组中,并将它们显示给用户供其选择。我能够收集数据,从JSON解析数据并将其放入数组中。然而,每隔一段时间,我想检查是否有任何新的状态更新发布。我希望这样做的方式是将新状态放入一个新数组中,然后查看新状态的结束位置,以及现有状态的开始位置。我通过检查旧状态数组中的第一个字符串,并查看它在新数组中的位置来实现这一点。新阵列中第一个旧状态的位置使我能够告诉有多少新状态存在。我可以用Twitter API完美地做到这一点,但我在使用Graph API时遇到了困难。第一次收集数据工作得很好,当没有新的状态时,代码工作得很好。问题在于何时发布新状态。我收集和比较数据的代码是:iPhone上的Facebook API:如何比较两组返回的状态更新,iphone,facebook,facebook-graph-api,nsmutablearray,compare,Iphone,Facebook,Facebook Graph Api,Nsmutablearray,Compare,我正在构建一个应用程序,需要用户的状态更新。我将状态更新放入一个数组中,并将它们显示给用户供其选择。我能够收集数据,从JSON解析数据并将其放入数组中。然而,每隔一段时间,我想检查是否有任何新的状态更新发布。我希望这样做的方式是将新状态放入一个新数组中,然后查看新状态的结束位置,以及现有状态的开始位置。我通过检查旧状态数组中的第一个字符串,并查看它在新数组中的位置来实现这一点。新阵列中第一个旧状态的位置使我能够告诉有多少新状态存在。我可以用Twitter API完美地做到这一点,但我在使用Gra
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSMutableArray *goodstatusesFB = [[NSMutableArray alloc] init];
NSMutableArray *datafromFB = [[NSMutableArray alloc] init];
NSString *stringfromFB = [[[NSString alloc] initWithData:responseData encoding: NSASCIIStringEncoding] autorelease];
NSDictionary *json = [stringfromFB JSONValue];
NSArray *items = [json valueForKeyPath:@"data"];
for (int a = 0; a < [items count]; a++)
{
NSDictionary *tempdict = [items objectAtIndex:a];
NSString *typeFB = [tempdict objectForKey:@"type"];
if ([typeFB isEqualToString:@"status"])
{
[datafromFB addObject:tempdict];
}
}
if ([goodstatusesFBexisting count] == 0)
{
//First time loading FB statuses
[goodstatusesFBexisting addObjectsFromArray:goodstatusesFB];
}
else
{
//Existing statuses
NSDictionary *statusDictold = [goodstatusesFBexisting objectAtIndex:0];
NSDictionary *statusDictnew = [goodstatusesFB objectAtIndex:0];
NSString *messageold = [statusDictold objectForKey:@"message"];
NSString *messagenew = [statusDictnew objectForKey:@"message"];
if ([messagenew isEqualToString:messageold])
{
NSLog(@"No new messages");
}//Works perfectly until here!
else
{
NSLog(@"New messages!");
NSMutableArray *textfromFB = [[NSMutableArray alloc] init];
NSMutableArray *textfromnew = [[NSMutableArray alloc] init];
int numberofnewFB = 0;
for (int a = 0; a < [goodstatusesFBexisting count]; a++)
{
NSDictionary *newcontents = [[NSDictionary alloc] init];
newcontents = [goodstatusesFBexisting objectAtIndex:a];
NSString *textfromexisting = [newcontents objectForKey:@"message"];
[textfromFB insertObject:textfromexisting atIndex:a];
}
for (int b = 0; b < [goodstatusesFB count]; b++)
{
NSDictionary *newcontents1 = [[NSDictionary alloc] init];
newcontents1 = [goodstatusesFB objectAtIndex:b];
NSString *textfromexisting = [newcontents1 objectForKey:@"message"];
[textfromnew insertObject:textfromexisting atIndex:b];
}
numberofnewFB = [textfromnew indexOfObject:messageold];
NSLog(@"You have %i new statuses", numberofnewFB);
}
}
您确定messageold正在添加到textfromnew吗?尝试打印阵列,看看它是否在其中。我不确定你是否添加了它。