我目前有一个plist
,用于存储UITableView
行的一组标签,以及存储设置的第二个plist
。
我想要的是当你创建一个新行时,该行的名称存储为array
的名称,相关的设置存储在数组中。
是否可以从数组名称中获得标签?我该怎么做?我如何将它作为数组存储在文本字段中的内容?
谢谢,
克里斯
我使用这段代码将文本字段保存为plist中的数组
- (IBAction)saveViewerItems
{
// get paths from root directory
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
// get documents path
NSString *documentsPath = [paths objectAtIndex:0];
// get the path to our Data/plist file
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"];
// set the variables to the values in the text fields
self.data = [[NSMutableArray alloc] initWithCapacity:20];
// create dictionary with values in UITextFields
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: data, nil] forKeys:[NSArray arrayWithObjects: (@"%@", text), nil]];
NSString *error = nil;
// create NSData from dictionary
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];
// check is plistData exists
if(plistData)
{
// write plistData to our Data.plist file
[plistData writeToFile:plistPath atomically:YES];
}
}
哪个有效,我可以看到它已保存。现在我只需要使用数组的名称作为cellForRowAtIndexPath
中的名称。
我偶然发现了另一个问题 - 每当我添加一个新项目时,它会将它添加到plist中的相同位置 - 覆盖旧项目..
答案 0 :(得分:0)
我完全不明白你的问题。正如上面的评论中提到的那样做这样的事 存储像
这样的数组[plistDictionary setObject:someArray forKey:textField.text];
cellForRow
中的
NSArray *keys = [plistDictionary allKeys];
cell.textLabel.Text = [keys objectAtIndex : indexPath.row]