NSMutableArray writeToUrl

Posted

技术标签:

【中文标题】NSMutableArray writeToUrl【英文标题】: 【发布时间】:2009-06-20 22:30:58 【问题描述】:

是否可以使用:

[NSMutableArray writeToURL:(NSString *)path atomically:(BOOL)AuxSomething];

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

例如: 我有一个数组,我想将它上传到一个特定的 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 接收信息并相应地更新服务器端文件。 类似设置的高分,用户发送他的分数,服务器更新它的文件,其他用户在运行时下载高分。

【问题讨论】:

您的问题必须更加清楚 - 您是什么意思“写入 URL”?是否要将数组的内容附加到基于您的主机的 URL?还是要将数组中的数据上传到您网站的某个位置? Creating a highscore like system, iPhone side的可能重复 【参考方案1】:

关于你的问题的第一部分, 我假设您想使用 NSMutableArray 的内容来形成某种 URL 请求(如 POST),您将发送到您的 Web 服务并期望返回一些信息...

没有将 NSMutableArray 的内容发送到 URL 的预构建方法,但有一些简单的方法可以自己完成。例如,您可以遍历数组中的数据,并利用NSURLRequest 创建一个符合您的Web 服务接口的URL 请求。构建请求后,您可以通过传递 NSURLConnection 对象来发送它。

考虑这个非常简单且不完整的示例,说明客户端代码使用 Obj-C 数组提供数据时的样子...

NSMutableData *dataReceived; // Assume exists and is initialized
NSURLConnection *myConnection;

- (void)startRequest
    NSLog(@"Start");

    NSString *baseURLAddress = @"http://en.wikipedia.org/wiki/";

    // This is the array we'll use to help make the URL request
    NSArray *names = [NSArray arrayWithObjects: @"Jonny_Appleseed",nil];
    NSString *completeURLAsString = [baseURLAddress stringByAppendingString: [names objectAtIndex:0]];

    //NSURLRequest needs a NSURL Object
    NSURL *completeURL = [NSURL URLWithString: completeURLAsString];

    NSURLRequest *myURLRequest = [NSURLRequest requestWithURL: completeURL];

    // self is the delegate, this means that this object will hanlde
    // call-backs as the data transmission from the web server progresses
    myConnection = [[NSURLConnection alloc] initWithRequest:myURLRequest delegate: self startImmediately:YES];


// This is called automatically when there is new data from the web server,
// we collect the server response and save it
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

    NSLog(@"Got some");
    [dataReceived appendData: data];


// This is called automatically when transmission of data is complete
- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
    // You now have whatever the server sent...

要解决您问题的第 2 部分,网络请求的接收者可能需要一些脚本或基础架构才能做出有用的响应。

【讨论】:

【参考方案2】:

这里,回答这个问题:Creating a highscore like system, iPhone side

我无法编辑我的帖子,因为我以匿名用户身份从我的 iPhone 发布,抱歉。

【讨论】:

以上是关于NSMutableArray writeToUrl的主要内容,如果未能解决你的问题,请参考以下文章

writeToFile 和 writeToURL 有啥区别?

NSDocument 和 writeToURL:ofType:error 的问题:

-writeToURL 不会覆盖之前的写入

使用 writeToURL 方法将数组保存到文件

无法将存档的 NSMutableArray 加载到新的 NSMutableArray

如何将NSArray排序的NSStrings拆分为NSMutableArray的NSMutableArray