我正在尝试在这里搜索名为1到6的plist,并且我编写了这段代码,并且它使应用程序再消耗3秒钟来加载原始时间....代码是
for (int i=1;i<6;i++) {
NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:bundleRoot];
for (NSString *tString in dirContents) {
if ([tString hasPrefix:[NSString stringWithFormat:@"%d",i]] && [tString hasSuffix:@".plist"]) {
NSLog(@"file found");
NSString *plist = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d",i] ofType:@"plist"];
mute = [NSMutableArray arrayWithContentsOfFile:plist];
[mute addObjectsFromArray:contentArray];
contentArray = mute;
}
else {
NSLog(@"not found");
}
}
}
有人可以用解决方案打我,或者定义这里的错误
答案 0 :(得分:1)
这不是很有效:)
试试这个:
for (int i = 1; i <= 6; ++i) {
// Load the plist
NSString *plist = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d",i] ofType:@"plist"];
if (nil == plist) {
NSLog(@"not found (%i)", i);
continue;
}
// Do something with your plist
mute = [NSMutableArray arrayWithContentsOfFile:plist];
[contentArray addObjectsFromArray:mute];
}
如果你仍然得到3秒的延迟,那么问题不在于搜索,而是你需要对它们进行处理的大小和处理。您可能只需要在加载时发出“请稍候”消息和微调器。
或者你可以尝试在后台线程上加载它们,这样你的ui仍然有用。我想这取决于你的应用程序中还发生了什么!