2011-09-14 5 views
5

NSUserDefaultにiPodライブラリのNSURLを格納するためにPrevious Postを参照しています。しかし、アプリケーションが閉じられた後、NSUserDefaultには格納されません。NSUserDefaultにNSUrlが絶対文字列として保存されていません

NSUserDefaultsに格納するために他のNSStringを使用していますが、絶対にNSUrlを絶対文字列として保存すると値が格納されません。

何が原因でしょうか?私がNSURLを保存しようとするとエラーに続いて

​​

が来る::

2011-09-13 18:47:23.258 Tabata Timer[933:707] songURL : ipod-library://item/item.mp3?id=-3715406019015217536 
2011-09-13 18:47:23.258 Tabata Timer[933:707] *** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value 'ipod-library://item/item.mp3?id=-3715406019015217536' of class 'NSURL'. 
2011-09-13 18:47:23.260 Tabata Timer[933:707] songTitle : Ghajini 
2011-09-13 18:47:24.860 Tabata Timer[933:707] *** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value 'ipod-library://item/item.mp3?id=-3715406019015217536' of class 'NSURL'. 
2011-09-13 18:47:24.963 Tabata Timer[933:707] songURL : ipod-library://item/item.mp3?id=-3715406019015217536 
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.5 (8L1)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found). 
+1

に保管してみては?また、値を格納していないと言うと、格納されている特定の文字列は単純にnilであると仮定します。あなたのコード上の警告? – Madhu

+0

私はコードを追加しました... – DShah

答えて

20

NSURLを保存する場合、なぜそれを文字列に変換して文字列として保存していますか?それはあなたの仕事の努力を増加させます。

あなたはこれを試すことができます。

NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];  
    [defaults setURL:[NSURL URLWithString:@"http://www.google.com"] forKey:@"urlValue"]; 
    [defaults synchronize]; 

    NSURL *url=[defaults URLForKey:@"urlValue"]; 
    NSLog(@"%@",url); 
+0

この解決策があなたの問題を解決することを願っています。 – Gypsa

+0

[デフォルトの同期]を使用する理由 – DShah

+0

実際には、これらのメソッドは定期的に自動的に呼び出してデータを自動的に更新しますが、更新されていない場合は古い結果が表示されますので、手動で呼び出されるので、 。 [NSURL URLWithString:..]の代わりに – Gypsa

1

唯一の事私はNSUserDefault値を保存するために使用していたコードに続いて

EDIT

URLが少なくとも部分的にランダムに生成されているため、アプリケーションが参照を削除した後に読み込めないことを説明すると考えることができますそれに。あなたは「閉じた」という意味ですか?背景?本当に終了した?

また、オブジェクトではなくstring:yourURLString forKey:@"URL"として保存する必要があります。それはアプリを混乱させる可能性があります。 NSLogを試してURL文字列を出力し、何が得られるかを確認してください。それが何であるか教えてください。それは物事を明らかにするでしょう。

+0

私はコードとエラーを追加しました。私のアプリが始めから始まるたびに。私は、私のアプリがバックグラウンドになるのを許可していません、いつも新しいものとして始まります。 – DShah

+0

'NSLog'を使ってURLを出力しようとしましたか? –

0

あなたの文字列は、プロパティが宣言されている必要があります...そして、私たちは、あなたがURLを保存する数行のコードを参照してくださいでしたNSUserDefaults

+0

他のすべてのUserDefaultsが正常に動作しています... NSURLが正常に動作していません... – DShah

+0

NSURLのインスタンスを作成し、プロパティを作成して合成してから保存しようとします... – Maulik

関連する問題