抱歉,如果这是一个愚蠢的问题,但我对此很陌生。
我正在开始 iPhone 应用程序开发,并希望创建一个涉及从 Web 服务提取数据的应用程序。
假设 URL 是
http://myapp.com/api/people/fetchall
并且它返回 XML 数据。
更新: 经过一些研究后,我决定(在服务器端)我想实现一个返回 JSON 的 RESTful API。所以我的 iPhone 应用程序最终将是一个 REST 客户端。
以下是迄今为止我发现有用的一些链接:
好的,你已经分解了要点,这是一个好的开始。
首先,Web 应用程序需要其 API 以客户端可以轻松解析的格式返回数据,无论它们是 iPhone 应用程序还是其他任何应用程序。因此,许多 Web 应用程序使用 JSON 或 XML。 HTML 不是传输数据的好格式,HTML 适合标记要呈现的文本。
首先,编写您的 Web 应用程序以返回 XML 或 JSON 格式的响应。如果您有时间,您可以让您的 Web 应用同时执行这两项操作,并指定您希望响应采用的格式作为参数。
要将数据从 Web 应用程序下载到您的 iPhone 应用程序,您需要建立 URL 连接并从 API 调用之一下载数据。
例如,如果您的 API 有一个方法会返回有关用户的一些信息,您需要在 iPhone 客户端中构建一个 http 请求,并通过 API URL 将其发送到服务器,并指定它是否是一个GET 或 PUT 或其他类型的 http 请求。
对此感兴趣的类是
NSURLRequest
,它是可变的对应项,NSURLConnection
,它是委托协议,NSURLConnectionDelegate
。
解析数据取决于数据的格式。对于 XML,您可以使用 iPhone SDK 中提供的 XML 解析器,
NSXMLParser
。
如果您要使用 JSON,则可以使用 iPhone 上提供的 JSON 解析库之一。就我个人而言,我使用过 TouchJSON 和 JSON-Framework。
要填充表格视图,您需要实现
UITableViewDataSource
方法中的几个方法,以及 UITableViewDelegate
中的一些方法。阅读 UITableView
类的文档和上述协议应该为您提供足够的信息来开始使用它们。
我希望这对您有所帮助,并为您提供了解更多信息的起点。
看一下 Three20 项目 - Facebook iPhone 应用程序的开发者 Joe Hewitt 开源了他的许多工作,包括一个可以用网络数据填充自身的表视图类。
非常简单... 这里有一些可以帮助您入门的链接 http://mobiledevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
本教程将告诉您如何在 plist 文件中进行必要的更改以及如何告诉您的应用程序从 URL 启动。其次,代码需要在应用程序委托类中名为 :
的方法中完成- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
从 url...获取您需要的所有信息并从中调用 JSON Web 服务。调用 JSON 的示例如下:
[[AFCoVuAPIClient sharedClient] getPath:@"whatever.json"
parameters:[NSDictionary dictionaryWithObject:loginSessionKey forKey:@"login_session_key"]
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Did logout successfully on app termination");
[application endBackgroundTask: background_task]; //End the task so the system knows that you are done with what you need to perform
background_task = UIBackgroundTaskInvalid; //Invalidate the background_task
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Did NOT logout successfully on app termination");
}];
你可以将数据保存在你的单例类中
您的 AFCovuAPIClient 类 .h 文件看起来像
#import "AFHTTPClient.h"
@interface AFCoVuAPIClient : AFHTTPClient
+(AFCoVuAPIClient *)sharedClient;
@end
AFCOvuAPIClient.m 文件如下所示 #导入“AFCoVuAPIClient.h”
#import "AFJSONRequestOperation.h"
@implementation AFCoVuAPIClient
+(AFCoVuAPIClient *)sharedClient {
static AFCoVuAPIClient *_sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[AFCoVuAPIClient alloc] initWithBaseURL:[NSURL URLWithString:@"url goes here"]];
});
return _sharedClient;
}
-(id)initWithBaseURL:(NSURL *)url {
self = [super initWithBaseURL:url];
if (!self) {
return nil;
}
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
[self setDefaultHeader:@"Accept" value:@"application/json"];
return self;
}
@end
希望这有帮助