如何使用 iPhone/iOS 编程(Objective-c)使用 wifi/3g IP 地址检索当前城市名称?
我想使用设备的 IP 地址(wifi/3g)检索 iPhone 当前的“城市名称”。有什么办法可以做到吗?请帮帮我。
以下是我想要当前位置的地方。
-(BOOL)fetchAndParseRss{
NSString * CurrentLocation = <I want the retrieved Location here!!>;
NSString * URLrss = [NSString stringWithFormat:@"http://news.google.com/news?q=location:%@&output=rss", CurrentLocation];
NSURL *url = [NSURL URLWithString:URLrss];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
}
实际上我正在为自己开发一个应用程序,显示当前城市的新闻。
I want to retrieve the current "city name" of the iPhone using ip address of device (wifi/3g). Is there any way to do it? please help me out.
Following is the place where I want the current location.
-(BOOL)fetchAndParseRss{
NSString * CurrentLocation = <I want the retrieved Location here!!>;
NSString * URLrss = [NSString stringWithFormat:@"http://news.google.com/news?q=location:%@&output=rss", CurrentLocation];
NSURL *url = [NSURL URLWithString:URLrss];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
}
Actually i am developing an app for myself that displays the news of current city.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
CLLocationManager
和MKReverseGeocoder
来获取用户所在城市。首先添加
CLLocationManager
并开始更新用户位置然后添加位置管理器委托方法以使用
MKReverseGeocoder
。当然,您必须实现 MKReverseGeocoder 委托方法
如果用户向您的应用程序授予位置管理器的权限,则可以使用此方法。
You can use
CLLocationManager
andMKReverseGeocoder
to get users city.First add
CLLocationManager
and start updating user locationThen add location manager delegate methods to use
MKReverseGeocoder
.and of course you have to implement
MKReverseGeocoder
Delegate methodsThis method can be use if user gives permission to your application for location manager.
一种选择是向 geoiptool.com 等网站发出 HTTP 请求,并从响应中抓取城市信息。不过,我不确定使用移动电话网络时您会取得多大成功——当我在手机上尝试时,wifi 可以工作,但 3G 却不行。
One option would be to make an HTTP request to a website like geoiptool.com and scrape the city information from the response. I'm unsure how much success you'll have when using mobile phone networks, though—wifi worked when I tried it on my phone, but 3G didn't.