문제

새로운 질문을 열어 드려 죄송합니다. 등록되지 않은 사용자로서 iPhone의 다른 질문을 썼으므로 iPhone에서 글을 쓰는 것은별로 편안하지 않습니다.

질문을 다시 제출 :

다음을 사용할 수 있습니까?

NSMUTABLEARRAY WRITETOURL : (NSSTRING *) 경로 원자 적으로 : (BOOL) AUXSOMETHENT];

파일 (nsMutableAreRay) XML 파일을 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"];

즉, 웹 호스팅 서비스에있는 URL에 nsmutablearray를 작성하고 싶습니다.
(예 : batcave.net), URL은 정보를 수신하고 서버 측 파일을 그에 따라 업데이트합니다. 설정과 같은 하이 스코어, 사용자는 점수를 보내고 서버가 파일을 업데이트하고 다른 사용자는 런타임에 HighScores를 다운로드합니다.

나는 이것이 명확 해지기를 바랍니다.

편집 : 내가 찾고있는 것은 PHP 또는 ASP를 스크립팅하는 것입니다. 따라서 웹 사이트, 데이터가 전송되는 URL은 처리 방법을 알 수 있습니다. 웹 호스팅 서비스에서이를 수행 할 수있는 경우 데이터 처리를위한이 스크립팅을 구현하는 방법에 대한 예제 또는 자습서를 원합니다.

~ 미리 감사드립니다.

도움이 되었습니까?

해결책

"시스템과 같은 높은 점수를 만드는 방법"이라는 질문에 답하기 위해 시스템에는 여러 부분이 있습니다.

  • 각 사용자마다 ID가 필요합니다 (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가 URL 매개 변수를 인코딩하는 NSString의 사용자 정의 카테고리 인 경우 UID, 이름, 점수 및 iPhone 앱 및 웹 사이트에 알려진 일부 비밀의 보안 해싱을 나타내는 문자열입니다. 이미 오래 걸리고 있기 때문에 직접 파악하거나 별도의 질문을해야합니다.

다른 팁

NSDATA WriteTourl 문서에 따르면 (적어도 iPhone OS 2.2.1의 경우) :

"현재 파일만이 지원되므로 URL은 지원 되므로이 방법과 writeTofile 사이에는 차이가 없습니다. 첫 번째 인수의 유형을 제외하고는 원자 적입니다."

nsarray/nsdictionary/nsstring에 대한 문서는 구체적으로 제한을 언급하지는 않지만 동일한 제한이 적용될 가능성이 높습니다.

따라서 다른 메커니즘을 사용하여 XML을 업로드해야합니다.

또한 웹 서버에 업로드를 지원하기 위해 특정 코드를 제공하지 않는 한 웹 사이트는 일반적으로 읽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top