我很抱歉打开一个新问题,我不得不 - 因为我将我的iPhone中的另一个问题写成未注册的用户,并且从iPhone上写字不太舒服。
改述这个问题:
是否可以使用:
[NSMutableArray writeToURL:(NSString *)path atomically:(BOOL)AuxSomething];
为了将文件(NSMutableArray)XML文件发送到网址,并更新网址以包含该文件?
例如: 我有一个数组,我想将其上传到特定的URL,下次启动应用程序时我想下载该数组。
NSMutableArray * arrayToWrite = [[NSMutableArray alloc] initWithObjects:@“One”,@“Two”,nil];
[arrayToWrite writeToURL:
[NSURL urlWithString:@“mywebsite.atwebpages.com/myArray.plist”] atomically:YES];
在运行时:
NSMutableArray * arrayToRead =
[[NSMutableArray alloc] initWithContentsOfURL:[NSURL urlWithString:@“mywebsite.atwebpages.com/myArray.plist”]];
意思是,我想将一个NSMutableArray写入一个URL,该URL位于Web托管服务上(例如batcave.net),URL接收该信息并相应地更新服务器端文件。 像设置这样的高分,用户发送他的分数,服务器更新它的文件,其他用户在运行时下载高分。
我希望这一点得到澄清。
编辑:我正在寻找的是脚本PHP或ASP,因此网站,数据发送到的URL将知道如何处理它。如果可以在Web托管服务上执行此操作,我想要一个关于如何实现此脚本来处理数据的示例或教程。
〜提前致谢。
答案 0 :(得分:2)
要回答“如何创建类似系统的高分?”这一问题,系统有多个部分:
在iPhone应用程序方面,您可能希望能够下载显示的当前高分,这可以通过以下方式轻松完成:
int statusCode = 0;
NSData* result = nil;
NSHTTPURLResponse* response = nil;
NSError* error = nil;
NSString* url = @"http://www.yourserver.com/highscores.php"; // returns XML plist data
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:180];
result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
// NSLog( @"NSURLConnection result %d %@ %@", [response statusCode], [request description], [error description] );
statusCode = [response statusCode];
if ( (statusCode == 0) || (!result && statusCode == 200) ) {
statusCode = 500;
}
由于它是同步的,您可能希望将其放在NSOperation中。或者,您可以使用
+ (NSURLConnection *)connectionWithRequest:(NSURLRequest *)request delegate:(id)delegate
要发送高分数据,因为它太小,最简单的方法就是在网址中对其进行编码。
NSString* url = [NSString stringWithFormat:@"http://www.yourserver.com/sethighscores.php?uid=%@;name=%@;score=%d;antifraud=%@", [uid encodeParameter], [name encodeParameter], score, [secureHash encodeParameter]];
其中encodeParameter是NSString上的自定义类别,用于编码URL参数,secureHash是一个字符串,表示uid,名称,分数以及iPhone应用程序和网站已知的某个秘密的单向安全哈希。你需要自己解决这些问题或者提出不同的问题,因为这已经很久了。
答案 1 :(得分:0)
根据NSData writeToURL文档(至少对于iPhone OS 2.2.1):
“由于目前只支持file:// URL,因此除了第一个参数的类型外,此方法与writeToFile:atomically:之间没有区别。”
尽管NSArray / NSDictionary / NSString的文档没有特别提及限制,但似乎很可能同样的限制适用。
因此,您必须使用其他一些机制上传XML。
此外,网站通常是只读的,除非您在网络服务器上提供特定代码以支持上传。