2010-05-05 5 views

답변

1

쿠키는 웹 페이지에 대한 것입니다. 웹 페이지를 표시하려면 UIWebView를 사용하십시오. 영구 데이터를 저장하려면 NSUserDefaults를 사용하십시오. 서버에서 보낸 쿠키를 구문 분석하려면 NSURLConnection을 사용하고 헤더를 구문 분석하십시오. 응용 프로그램에서 실행중인 UIWebView에 의해 설정된 쿠키를 보려면 NSHTTPCookieStorage를 사용하십시오.

NSHTTPCookieStorage 클래스 참조

이 쿠키는 모든 응용 프로그램간에 공유 및 동기화 크로스 프로세스에 보관됩니다.

응용 프로그램이 iPhone에서 루트로 실행되는 경우에만 해당됩니다.

+0

"iPhone에서 루트로 앱 실행"이란 무엇을 의미합니까? iPhone-Apps는 기본적으로 샌드 박싱됩니다. – nodepond

4

HTTP 연결의 서버 만 쿠키를 설정해야합니다. 이 작업은 헤더의 Set-Cookie 필드를 사용하여 수행합니다.

링크 된 쿠키 저장소는 모든 NSURLConnection 쿠키 작업 (가져 오기 및 설정 모두)을 처리하며 일반적으로 쿠키를 직접 변경하면 안됩니다. 재정의하려면 NSURLConnection을 사용할 수 없으므로 CFReadStreamRef를 사용하고 통신을 처리하고 CFHTTPMessageRef를 수동으로 작성해야합니다.

은 HTTP 통신의 서버 측을 구현하는 경우 쿠키를 처리해야합니다.

당신은 다음 CFHTTPMessageRef을 사용하여 서버를 구현하는 경우 :

NSDate *expiryDate = /* set some date value */ 

CFHTTPMessageSetHeaderFieldValue(
    response, 
    (CFStringRef)@"Set-Cookie", 
    (CFStringRef)[NSString stringWithFormat: 
      @"SomeCookieName=%@;Path=/;expires=%@", 
      someStringValue, 
      [dateFormat stringFromDate:expiryDate]]); 

responseCFHTTPMessageRef 당신은 응답을 사용하고 있습니다. CFHTTPMessageCopyAllHeaderFields을 사용하고 키 "쿠키"에 대한 객체를 가져 와서 클라이언트의 쿠키를 CFHTTPMessageRef 헤더에 추출 할 수 있습니다.

관련 문제