こんにちは友人私は客観的なciの初心者で、同期呼び出しのためにサーバー側からの応答が遅いです。Google で分析したところ、呼び出しが非同期である可能性があるということは、応答速度が速くなることを意味しますが、 と についてはよくわかりませNSURLConnection
んGCD
。私の呼び出しを非同期に変更する方法を教えてください。以下の私のコードを参照してください`
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSString* oldToken = [self deviceToken];
NSString *newToken = [[[[deviceToken description]stringByReplacingOccurrencesOfString:@"<"withString:@""]
stringByReplacingOccurrencesOfString:@">" withString:@""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
NSLog(@"My token is: %@", newToken);
[self setDeviceToken:newToken];
if (![newToken isEqualToString:oldToken])
{
[self calur:newToken];
}
}
- (NSString*)deviceToken{
return [[NSUserDefaults standardUserDefaults] stringForKey:@"deviceid"];
}
- (void)setDeviceToken:(NSString*)token{
[[NSUserDefaults standardUserDefaults] setObject:token forKey:@"deviceid"];
}
//This function used to store a notification device id to our notification databae
-(void)calur:(NSString *)device
{
NSString *post =[NSString stringWithFormat:@"deviceId=%@",device];
NSString *hostStr = @"https://myserver.com/Ver_2_0/notification/check.php?";
NSError *error = nil;
NSString *nocon=[NSString stringWithContentsOfURL:[NSURL URLWithString:hostStr]encoding:NSUTF8StringEncoding error:&error];
if (nocon == nil)
{
NSLog(@"NO Connection");
}
else
{
hostStr = [hostStr stringByAppendingString:post];
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];
NSLog(@"hostStr=%@",hostStr);
NSLog(@"serverOutput = %@",serverOutput);
NSLog(@"dataURL=%@",dataURL);
// NSData *dataurl=dataURL;
if([serverOutput isEqualToString:@"Token Updated Successfully"])
{
NSLog(@"badge updated");
}
else
{
NSLog(@"serverOutput = %@",serverOutput);
NSLog(@"not registered");
}
[serverOutput release];
}
}`