2009-06-21 2 views
0

Прошу прощения за открытие нового вопроса, мне пришлось - как я написал другой вопрос с моего iPhone как незарегистрированный пользователь, и писать с iPhone не очень удобно.Создание рекорда как система, сторона iPhone

Перефразируя вопрос:

Можно ли использовать:

[NSMutableArray writeToURL: (NSString *) путь атомарно: (BOOL) AuxSomething];

Чтобы отправить файл XML (NSMutableArray) в URL-адрес и обновить URL-адрес, чтобы скрыть этот файл?

например: У меня есть массив, и я хочу загрузить его на определенный URL-адрес, и в следующий раз, когда приложение запустится, я хочу загрузить этот массив.

NSMutableArray * arrayToWrite = [[NSMutableArray alloc] initWithObjects: @ "One", @ "Two", nil];

[arrayToWrite writeToURL:

[NSURL urlWithString: @ "mywebsite.atwebpages.com/myArray.plist"] атомарно: ДА];

И во время выполнения:

NSMutableArray * arrayToRead =

[[NSMutableArray Alloc] initWithContentsOfURL: [NSURL urlWithString: @ "mywebsite.atwebpages.com/myArray.plist"]];

Значение, я хочу написать NSMutableArray к URL-адресу, который находится на веб-хостинга службы
(например batcave.net), то URL принимает сторонние файлы информации и обновления сервера соответственно. Рекорды, такие как настройка, пользователь отправляет свои оценки, сервер обновляет свои файлы, другие пользователи загружают рекорды во время выполнения.

Надеюсь, это выяснится.

Редактировать: Я ищу сценарий PHP или ASP, поэтому веб-сайт, URL-адрес, куда отправляются данные, будет знать, как с ним обращаться. Я хочу привести пример или учебник о том, как реализовать этот сценарий для обработки данных, если это возможно сделать в службе веб-хостинга.

~ Заранее спасибо.

+2

Не создавайте дубликаты (http://stackoverflow.com/questions/1022714/nsmutablearray-writetourl). Даже будучи новым пользователем, вы, очевидно, могли бы разместить этот контент в качестве ответа на свой другой вопрос. –

+0

(Шепоты) Если вы публикуете повторяющиеся вопросы, по крайней мере, не говорите, что делаете. – 2011-06-05 00:47:04

ответ

2

Чтобы ответить на этот вопрос «? Как создать высокий балл, как системы», есть несколько частей системы:

  • Вам нужен идентификатор для каждого пользователя (а GUID генерируется на iPhone, вместе с именем пользователя должно быть достаточно).
  • Вам нужен сервер, который: запоминает высокие баллы; получает высокие баллы от пользователей; либо отображает (на веб-сайте) высокие баллы и/или делает высокие оценки доступными для загрузки на телефон.
  • Вам нужна защита от мошенничества, хотя это, вероятно, сражается с проигрышной битвой с джейлбрейкерами.

На стороне 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 и вашего веб-сайта. Вам нужно будет выяснить это самостоятельно или задать отдельные вопросы, так как это уже слишком долго.

0

Согласно NSData writeToURL документов (по крайней мере, для iPhone OS 2.2.1):

«Поскольку в настоящее время только файл: // URL-адрес поддерживается, нет никакой разницы между этим методом и WriteToFile: атомарен :, за исключением типа первого аргумента ».

Хотя в документах для NSArray/NSDictionary/NSString конкретно не упоминается ограничение, представляется весьма вероятным, что такое же ограничение применяется.

Чтобы загрузить XML, используйте другой механизм.

Кроме того, веб-сайты обычно доступны только для чтения, если только вы не предоставляете определенный код на веб-сервере для поддержки загрузки.

+0

Это то, что меня интересует, я думаю, что нет проблемы с использованием метода writeToURL. Проблема заключается в написании сценариев, мне нужно объяснить некоторые сценарии, если это PHP или ASP, поэтому я могу обрабатывать данные, которые отправляются по URL-адресу. – natanavra

+0

Ну, есть проблема с использованием метода writeToURL в том, что он работает только с URL-адресами file: //, поэтому он никогда не будет обращаться к веб-сайту (ну, за исключением того, что вы можете монтировать веб-сайт в качестве диска). –

+0

Хм, тогда как люди создают рекорды? не могли бы вы рассказать, потому что это то, что я действительно ищу, я хочу получать данные с iPhone и обновлять веб-страницу соответственно, а затем другие пользователи iPhone могут загружать информацию с помощью (initWithContentsOfURL :). МОЙ БАЗОВЫЙ ВОПРОС: Как создать такую ​​рекорду, как система. – natanavra

Смежные вопросы