2009-12-03 89 views
1

我在寫一個需要存儲cookie的應用程序。iPhone Cookie管理

我的計劃是要做到以下幾點。

 
// create a ref to shared storage area 

NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 

// query the current acceptpolicy (ie want to store it for later...) 

[cookieJar cookieAcceptPolicy];  /******** This line crashes app ********/ 

[cookieJar setcookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 

NSArray *mycookies = [cookieJar cookies]; 

..... do more stuff 
..... change it back.... 

問題是我無法弄清楚如何存儲cookieAcceptPolicy的結果供以後使用。文檔顯示 - (NSHTTPCookieAcceptPolicy)cookieAcceptPolicy,對我沒有任何意義。

幫助讚賞。

+0

「崩潰應用程序」是無用的,在調試器下運行它,並找出它崩潰的原因。 – 2009-12-03 19:15:57

回答

2

該文檔實際上顯示- (NSHTTPCookieAcceptPolicy)cookieAcceptPolicy這意味着它返回枚舉typedef'd的值爲NSHTTPCookieAcceptPolicy。所以像這樣:

NSHTTPCookieAcceptPolicy currentPolicy = [cookieJar cookieAcceptPolicy]; 
[cookieJar setCookieAcceptPolicy: NSHTTPCookieAcceptPolicyAlways]; 

//do stuff 

//change it back 
[cookieJar setCookieAcceptPolicy: currentPolicy]; 

應該工作。您的應用「崩潰」的原因是因爲您認爲應用崩潰的行的setCookieAcceptPolicy方法中的小寫字母「c」。您在編譯時肯定會收到警告......在將來,我建議您不僅要爭取不錯的錯誤,而且還要提供免警告的Objective-C代碼,因爲類型檢查對於動態檢查來說並不合理,鍵入語言。