NSArray *myArray
という名前のローカルプロパティがシングルトンの.m
ファイルにあり、必要なすべてのデータが保存されているとします。あなたがする必要があるのは、nil
でなければその配列を返すメソッドをヘッダファイルに追加することだけです。nil
の場合は、それを記憶からリロードして返します。 - (void)didReceiveMemoryWarning
メソッドをオーバーライドし、メモリ警告の場合はデータを保存してください。ここ
は、Objective-Cで書かれたサンプルコードです:
//Singleton.h file
- (NSArray *)storedData;
//Singleton.m file
@property NSArray *myArray;
...
- (NSArray *)storedData
{
if (_myArray == nil)
_myArray = [self fetchMyArrayFromLocalStorage];
return _myArray;
}
- (NSArray *)fetchMyArrayFromLocalStorage
{
//Some code to fetch data from local storage
}
- (void)saveMyArrayToLocalStorage
{
//Code to save _myArray to local storage
}
- (void)didReceiveMemoryWarning
{
[self saveMyArrayToLocalStorage];
_myArray = nil; //Remove array if is needed
[super didReceiveMemoryWarning];
}
今、あなたは常にあなたがメソッドを呼び出すだけで必要なデータを取得します:
[[mySingleton sharedInstance] storedData]
ありがとうございました!したがって、シングルトンに格納されているデータがメモリの消耗によって削除された場合、そのデータを再度取得する唯一の方法は、ローカルdbを再度フェッチすることです。 –