创建一个类似高分的系统,iPhone端

创建一个类似高分的系统,iPhone端,iphone,objective-c,xcode,nsmutablearray,Iphone,Objective C,Xcode,Nsmutablearray,很抱歉,我不得不提出一个新问题,因为我是以未注册用户的身份在iPhone上写下了另一个问题,从iPhone上写下来并不舒服 重新表述问题: 是否可以使用: [NSMutableArray writeToURL:(NSString*)原子路径:(BOOL)AuxSomething] 要将文件(NSMutableArray)XML文件发送到url,并更新url以包含该文件 例如: 我有一个数组,我想把它上传到一个特定的URL,下次应用启动时,我想下载这个数组 NSMUTABLEARRY*arrayT

很抱歉,我不得不提出一个新问题,因为我是以未注册用户的身份在iPhone上写下了另一个问题,从iPhone上写下来并不舒服

重新表述问题:

是否可以使用:

[NSMutableArray writeToURL:(NSString*)原子路径:(BOOL)AuxSomething]

要将文件(NSMutableArray)XML文件发送到url,并更新url以包含该文件

例如: 我有一个数组,我想把它上传到一个特定的URL,下次应用启动时,我想下载这个数组

NSMUTABLEARRY*arrayToWrite=[[NSMUTABLEARRY alloc]initWithObjects:@“一”,“二”,零]

[ArrayToWriteToURL:

[nsurlUrlWithString:@“mywebsite.atwebpages.com/myArray.plist”]原子级:是]

在运行时:

NSMUTABLEARRY*arrayToRead=

[[NSMutableArray alloc]initWithContentsOfURL:[NSURL urlWithString:@“mywebsite.atwebpages.com/myArray.plist”]

也就是说,我想将NSMutableArray写入web托管服务(如batcave.net)上的URL,该URL接收信息并相应地更新服务器端文件。 像设置一样的高分,用户发送他的分数,服务器更新它的文件,其他用户在运行时下载高分

我希望这一点得到澄清

编辑:我正在寻找的是PHP或ASP脚本,这样的网站,数据发送到的URL将知道如何处理它。我想要一个示例或教程,介绍如何实现这个脚本来处理数据,如果可以在web托管服务上实现的话


~提前感谢。

根据NSData writeToURL文档(至少对于iPhone OS 2.2.1):

由于目前只支持file://URL,因此除了第一个参数的类型外,此方法与writeToFile:Atomicaly:之间没有区别

尽管NSArray/NSDictionary/NSString的文档没有特别提到该限制,但很有可能应用相同的限制

因此,您必须使用其他机制上载XML

此外,网站通常是只读的,除非您在web服务器上提供支持上载的特定代码。

要回答“如何创建类似高分的系统?”的问题,系统有多个部分:

  • 您需要为每个用户提供一个ID(iPhone上生成的GUID以及用户名就足够了)
  • 你需要一个服务器:记住高分;从用户那里获得高分;显示(在网站上)高分和/或将高分下载到手机上
  • 你需要一些欺诈保护,尽管这很可能是与越狱者的一场败仗
在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;
}
因为它是同步的,所以您可能希望将它放在NSO操作中。或者,您可以使用

+ (NSURLConnection *)connectionWithRequest:(NSURLRequest *)request delegate:(id)delegate
要发送高分数据,因为它非常小,最简单的方法就是在URL中对其进行编码

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应用程序和网站已知的一些秘密进行单向安全哈希。您需要自己解决这些问题,或者单独提出问题,因为这已经很长了。

请不要创建重复项()。即使是一个新用户,你显然也可以发布此内容作为对其他问题的回答。(耳语)如果你发布重复的问题,至少不要说你这样做。这就是我感兴趣的,我认为使用writeToURL方法没有问题,问题是脚本,如果是PHP或ASP,我需要一些脚本说明,这样我就可以处理发送到URL的数据。好吧,使用writeToURL方法存在一个问题,因为它只与file://URL一起工作,所以它永远不会访问网站(好吧,除了可以将网站装载为磁盘)。嗯,那么人们如何创建highscore服务器呢?请您详细说明一下,因为这正是我真正想要的,我想从iPhone接收数据并相应地更新网页,然后其他iPhone用户可以使用(initWithContentsOfURL:)下载信息。我的基本问题是:如何创建一个类似highscore的系统。在这种情况下,我建议您要么大量编辑您的问题(尤其是标题),要么提出一个新问题,因为您无法使用writeToURL做您想做的事。作为将来的参考,如果你问你真正想要回答的问题(包括你尝试过的细节),而不是只问你正在尝试的问题,你会得到更好的结果。