Xcode:重命名后在plist中存储/检索数据不再工作

Xcode:重命名后在plist中存储/检索数据不再工作,xcode,plist,Xcode,Plist,今天我创建了一个带有本地数据存储(plist)的项目。在我重新命名plist文件(从:Log.plist到:Data.plist)之前,一切都很正常。我在Xcode中重命名了它,所以没有错误的连接 可能是什么?我已经清除了Xcode,删除了DerivedData中的所有文件,但没有任何效果。数据不会保存在我的plist文件中 还尝试用另一个名称重新创建项目或从Time Capsule恢复文件:每次我重命名plist时,都不会再存储任何内容 有人知道为什么不存储数据吗?谢谢你抽出时间 编辑 -(v

今天我创建了一个带有本地数据存储(plist)的项目。在我重新命名plist文件(从:Log.plist到:Data.plist)之前,一切都很正常。我在Xcode中重命名了它,所以没有错误的连接

可能是什么?我已经清除了Xcode,删除了DerivedData中的所有文件,但没有任何效果。数据不会保存在我的plist文件中

还尝试用另一个名称重新创建项目或从Time Capsule恢复文件:每次我重命名plist时,都不会再存储任何内容

有人知道为什么不存储数据吗?谢谢你抽出时间

编辑
-(void)viewDidLoad
{
[超级视图下载];
[self-retrieveDataFromPlist:@“数据”];
}
-(NSInteger)表格视图中的节数:(UITableView*)表格视图
{
返回1;
}
-(NSInteger)表视图:(UITableView*)表视图行数节:(NSInteger)节
{
NSInteger结果=tableViewData.count;
返回结果;
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
静态NSString*cellIdentifier=@“logDataCell”;
UITableViewCell*单元格=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
如果(单元格==nil)
{
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault重用标识符:cellIdentifier];
}
[cell.textLabel setText:[tableViewData objectAtIndex:indexPath.row]];
返回单元;
}
-(void)从plist检索的数据:(NSString*)plist
{
NSString*plistPath=[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)对象索引:0]stringByAppendingPathComponent:[NSString stringWithFormat:@“%@.plist”,plist]];
如果(![[NSFileManager defaultManager]文件存在路径:plistPath]){
plistPath=[[NSBundle mainBundle]pathForResource:plist类型:@“plist”];
}
NSData*plistData=[[NSFileManager defaultManager]contentsAtPath:plistPath];
NSString*plistError;
NSPropertyListFormat plistFormat;
NSDictionary*plistDictionary=(NSDictionary*)[NSPropertyListSerialization propertyListFromData:plistData可变选项:NSPropertyListMutableContainers和Leaves格式:&plistFormat错误描述:&plistError];
if(!plistDictionary){
NSLog(@“从plist检索数据时出错:%@”,plistError);
}
tableViewData=[plistDictionary objectForKey:@“Logs”];
[self.logTableView重载数据];
}
-(void)storeData:(NSString*)数据输入列表:(NSString*)plist
{
NSString*plistPath=[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)对象索引:0]stringByAppendingPathComponent:[NSString stringWithFormat:@“%@.plist”,plist]];
如果(![[NSFileManager defaultManager]文件存在路径:plistPath]){
plistPath=[[NSBundle mainBundle]pathForResource:plist类型:@“plist”];
}
NSMutableArray*refreshedTableData=[NSMutableArray阵列容量:25];
对于(int i=0;i25){
[刷新的可删除数据对象];
}
NSDictionary*plistDictionary=[NSDictionary Dictionary WithObjects:[NSArray arrayWithObjects:refreshedTableData,nil]forKeys:[NSArray arrayWithObjects:@“Logs”,nil]];
NSString*plistError;
NSData*plistData=[NSPropertyListSerialization dataFromPropertyList:plistDictionary格式:NSPropertyListXMLFormat\u v1\u 0错误描述:&plistError];
if(plistData){
[plistData writeToFile:plistPath原子性:是];
}否则{
NSLog(@“在plist中存储数据时出错:%@”,plistError);
}
//检索刷新的数据,使tableView始终充满最新的日志
[self-retrieveDataFromPlist:@“数据”];
}
-(void)deleteFullPlist:(NSString*)plist
{
}
-(iAction)菜单按钮单击:(id)发件人
{
[self.slidingViewController slideRight];
}
-(iAction)保存按钮单击:(id)发件人
{
[自存储数据:self.textfield.text inPlist:@“数据”];
}

无法将plist保存到应用程序的捆绑包中

- (void)storeData:(NSString *)data inPlist:(NSString *)plist {
    ...
    if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
        plistPath = [[NSBundle mainBundle] pathForResource:plist ofType:@"plist"];
    }

删除上面最后3行,您始终需要存储在文档目录中。

1)您需要提供代码。2) 您需要使用Git,以便跟踪更改。3) 查看文档目录,查看文件是否存在,如果存在,请打开并验证内容。4) 查看任何错误返回。1)添加的代码2)应该被激活,但我不知道如何使用此新功能3)文件在那里,内容似乎没有问题4)直到现在都没有错误。Re Git:学会使用它,观看Apple WWDC视频。使用源代码管理是任何开发工作的一部分,即使对一个人来说也是如此。经过几次糟糕的更改后,它将为您节省无数个小时。:-)扎夫。。。你很棒。非常感谢你。在这件事上花了几个小时。。我可以付你一杯啤酒吗?:)
- (void)storeData:(NSString *)data inPlist:(NSString *)plist {
    ...
    if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
        plistPath = [[NSBundle mainBundle] pathForResource:plist ofType:@"plist"];
    }