Google Places API を iPhone プロジェクトで動作させようとしています。さて、約1時間前に動作していましたが、動作を停止するために何をしたのかわかりません. どんな助けでも大歓迎です。
これが私がこれまでに持っているものです:
- (NSString *)searchString {
// this mutable string allows me to dynamically create the search string
// we start with the static part of the api search URL
NSMutableString *result = [NSMutableString stringWithString:@"https://maps.googleapis.com/maps/api/place/search/json?location="];
// since I need to get the user's location, I need to create a location manager
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
// we need to now update the current location,
// otherwise there will be no coordinates
[locationManager startUpdatingLocation];
// now that it's updated, we stop it because I
// am not tracking anything
[locationManager stopUpdatingLocation];
// this appends the lattitude/longitude, as double values, into the URL
[result appendFormat:@"%g,%g", [[locationManager location] coordinate].latitude, [[locationManager location] coordinate].longitude];
// release the location manager for memory management
[locationManager release];
// if a filter is present, add the keyword item to try to filter
// the results
if([[self filterString] length] > 0) {
[result appendFormat:@"&keyword=%@", filterString];
}
// add the rest of the validated URL now
//[result appendString:@"&types=food|meal_delivery|meal_takeaway|restaurant&rankby=distance&sensor=true&key=AIzaSyBmO_f6h4_Q0xArw6tdxUF7TH7rZpaiFfQ"];
[result appendString:@"&types=food&rankby=distance&sensor=true&key=mykey"];
// log the result for testing
NSLog(@"Completed Search String: %@", result);
return result;
}
ここで、ログを見て、「完了した検索文字列」を Safari にコピーすると、必要な結果が表示されます。
しかし、次のコードを使用すると、アプリがハングします。
- (void)performSearch {
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[self searchString]]]; // hangs on this line!
NSDictionary *jsonDictionary = [data objectFromJSONData];
NSArray *resultsArray = [jsonDictionary objectForKey:@"results"];
currentList = [ARGooglePlace placesWithArray:resultsArray];
[self.tableView reloadData];
}
私は、JSONKit を使用して JSON 解析を行っていることに言及する必要があると思います。また、ARGooglePlace はカスタム クラスであり、現在は関係ありません (そこに到達することさえできません...)。
ご協力いただきありがとうございます。