バックグラウンド
私は 2 つの tableViews を持っています。1 つ目はメイン テーブルで、2 つ目はお気に入りテーブルです。
すべてがplistで処理されます。
最初のテーブルの detailView から、上隅にボタンを設定して、値 YES を plist に書き込みます。
plist は次のように構成されています。
Section 1 Dictionary
Title String
Rows Array
Item 0 Dictionary
name String
description String
image String
isFav Bool (default NO)
Item 1 Dictionary
name String
description String
image String
isFav Bool (default NO)
Section 2
Title
Rows
Item 0 Dictionary
name String
description String
image String
isFav Bool (default NO)
etc..
それがどのように機能するかの小さなスキームを追加します:
firstTable detailView plist
__________ ________
| | | |★ |<- button pressed ---> cellname isFav = YES
|__________| | |
|cellname | ------>| detail |
|__________| | |
| | | |
| | | |
問題
そのボタンができたので、isFav ブール値を plist に書き込むメソッドを書き込もうとしていました。
-(void)makeFavorite
plist を読み取る方法は既にありましたが、それに値を書き込む方法がわかりません。Google で検索して、他の stackOverflow の投稿を読んでみましたが、よくわかりません。どんな助けでも大歓迎です!
編集
これは、plistを読み取る方法です
- (NSArray*)readPlist
{
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *plistPath = [[documentPaths lastObject] stringByAppendingPathComponent:@"tipsList.plist"];
NSFileManager *fMgr = [NSFileManager defaultManager];
if (![fMgr fileExistsAtPath:plistPath]) {
plistPath = [[NSBundle mainBundle] pathForResource:@"tipsList" ofType:@"plist"];
}
return [NSArray dictionaryWithContentsOfFile:plistPath];
}
そして、私が入力していた方法で:
- (void) makeFavorite:(id)sender
{
NSArray *test = [self readPlist];
NSLog (@"test: %@",test);
//write plist instructions then
}