很抱歉,如果这是一个愚蠢的问题,但我是新手。
我开始使用iPhone应用程序开发,并希望创建一个涉及从Web服务中提取数据的应用程序。
假设网址为http://myapp.com/api/people/fetchall
,它会返回XML数据。
更新在做了一些研究后,我决定(在服务器端)我想实现一个返回JSON的RESTful API。所以我的iPhone应用程序最终将成为一个REST客户端。
到目前为止,我发现了一些有用的链接:
答案 0 :(得分:3)
好的,你已经分解了要点,这是一个好的开始。
首先,Web应用程序需要其API以一种可以由客户端轻松解析的格式返回数据,无论它们是iPhone应用程序还是其他任何东西。出于这个原因,许多Web应用程序使用JSON或XML。 HTML不是传输数据的好格式,HTML有助于标记要呈现的文本。
首先,编写您的Web应用程序以返回XML或JSON格式的响应。如果您有时间,可以让您的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
类和上述协议的文档应该为您提供足够的信息来开始使用它们。
我希望这会有所帮助,并为您提供了解更多信息的起点。
答案 1 :(得分:2)
看看Three20项目 - Facebook iPhone应用程序的开发人员Joe Hewitt,他的很多工作都是开源的,包括一个表视图类,可以使用来自网络
答案 2 :(得分:0)
非常简单...... 这里有一些链接可以帮助您入门 http://mobiledevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
本教程将告诉您如何对plist文件进行必要的更改以及如何告知您的应用从URL启动。其次,代码需要在app委托类的方法中完成,命名为:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)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文件看起来像这样 #import“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
希望这会有所帮助