Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 应用程序未读取当前/更新的plist。plist的缓存问题?_Ios_Objective C_Iphone_Swift_Plist - Fatal编程技术网

Ios 应用程序未读取当前/更新的plist。plist的缓存问题?

Ios 应用程序未读取当前/更新的plist。plist的缓存问题?,ios,objective-c,iphone,swift,plist,Ios,Objective C,Iphone,Swift,Plist,我有一个plist,它是一个由10个索引组成的数组;这是第一次正确读取的,现在我从plist数组表单plist xml中删除了一些或最后5个索引,在获取之后,它仍然会返回10个索引的数组,而现在它应该返回5个索引的数组,它是否来自缓存。我怎样才能解决这个问题??? 这就是我通过调用以下命令读取plist数据的方式:- NSArray *plistDataArray = [self GetSavedPlistDatawithPlistIdentifier:myPlistName]; 其功能是:-

我有一个plist,它是一个由10个索引组成的数组;这是第一次正确读取的,现在我从plist数组表单plist xml中删除了一些或最后5个索引,在获取之后,它仍然会返回10个索引的数组,而现在它应该返回5个索引的数组,它是否来自缓存。我怎样才能解决这个问题??? 这就是我通过调用以下命令读取plist数据的方式:-

NSArray *plistDataArray = [self GetSavedPlistDatawithPlistIdentifier:myPlistName];
其功能是:-

-(NSMutableArray*)GetSavedPlistDatawithPlistIdentifier :(NSString*)plistfilename {
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.plist",plistfilename]];

if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath])
{
    plistPath = [[NSBundle mainBundle] pathForResource:plistfilename ofType:@"plist"];
}

NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSString *errorDesc = nil;
NSPropertyListFormat format;

NSMutableArray *tempfeedBackArr =(NSMutableArray *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];

return tempfeedBackArr;
}

你的问题和评论有些不合理。您发布的代码正在从documents目录(即运行时目录)读取。然后你说你不是在写


documents目录在应用程序运行期间写入,并在更新之间保持不变。如果您构建并运行新版本的应用程序,它仍将在文档目录中包含相同的内容。

您可以尝试清理(Cmd-Opt-Shift-K)和重建,以确保产品中包含更新版本的plist。是的,我已更新版本的plist,我已经仔细检查过了。你能提供一些更详细的信息,比如从plist中删除对象并读取plist的代码片段吗?我在上面看到的只是从文件中读取的内容。从来没有写过。是的,我没有写过。在以前版本的live app中,我有10个索引,而在下一版本中,我只有5个索引。所以我只是直接从plist或interface中删除最后5个索引。因为我有维度,所以在运行时我不会在plist中写任何东西。。我只是在构建plist的表单xml文件之前删除了一些索引。plist首先不会在documents目录中,除非您在运行时将其放在那里。