创建类的系统高分,iPhone端(Creating a highscore like system,

2019-09-16 15:56发布

对不起打开一个新的问题,我必须 - 因为我从我的iPhone写的其他问题为未注册的用户,这是不是很舒服,从iPhone写。

改写的问题:

是否有可能使用:

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

为了一个文件(NSMutableArray的)XML文件发送到一个网址,以及更新的URL包含文件?

例如:我有一个数组,我希望把它上传到一个特定的URL,并在下次启动应用我想下载该数组。

的NSMutableArray * arrayToWrite = [[NSMutableArray里的alloc] initWithObjects:@ “一”,@ “二”,零]。

[arrayToWrite writeToURL:

[NSURL urlWithString:@ “mywebsite.atwebpages.com/myArray.plist”]原子:YES];

并在运行时:

NSMutableArray的* arrayToRead =

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

意思是,我想一个NSMutableArray写入URL,这是一个Web托管服务
(例如batcave.net),则URL相应接收的信息和更新服务器双面文件。 像设置高分,用户发送他的得分,在服务器更新它的文件,其他用户在运行时下载的高分。

我希望这是澄清。

编辑:我在找的是PHP脚本或ASP这样的网站,在那里数据被发送到URL会知道如何处理它。 我想一个例子或如何实现此脚本来处理数据,如果有可能做到这一点上的Web托管服务的教程。

〜在此先感谢。

Answer 1:

要回答这个问题:“我如何创建一个高分像系统”,有系统的多个部分组成:

  • 你需要一个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;
}

既然是同步的,你可能想要把它的里面的NSOperation。 另外,您也可以使用

+ (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应用程序和你的网站的字符串。 你需要弄清楚这些在你自己或问不同的问题,因为这已经变得很长。



Answer 2:

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

“自从目前只有文件:// URL支持,有这种方法和将writeToFile之间没有差异:原子:,除了第一参数的类型。”

虽然的NSArray / NSDictionary中/的NSString的文档不具体提及的限制,这似乎很有可能是同样的限制。

所以,你将不得不使用上传一些其他机制的XML。

此外,网站通常是只读的,除非你在Web服务器上提供特定的代码来支持上传。



文章来源: Creating a highscore like system, iPhone side