几天前,使用我的应用程序的测试人员遇到了一个看似不可重现的错误。我相信我的应用程序记录的 NSLogs 可能会提供有关该问题的信息,但 Xcode Organizer 控制台仅记录 260 左右的先前行。设备上是否有一些日志文件可以提供更多的 NSLog?测试人员有越狱设备,因此访问根目录应该不是问题。
Best Answer-推荐答案 strong>
为什么不使用 PList 来存储日志?
我开发了一些基于位置的应用程序。我总是要绕着某个区域开车来测试Location Update、Region Monitoring等的准确性。我将这些日志存储到一个PList中,然后我会分析这些日志在我完成运行后在 PList 上。
示例代码:
-(void)addLocationToPList{
NSString *plistName = [NSString stringWithFormat"Location.plist"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *fullPath = [NSString stringWithFormat"%@/%@", docDir, plistName];
NSMutableDictionary *savedProfile = [[NSMutableDictionary alloc] initWithContentsOfFile:fullPath];
if (!savedProfile){
savedProfile = [[NSMutableDictionary alloc] init];
self.shareModel.myCurrentLocationArray = [[NSMutableArray alloc]init];
}
else{
self.shareModel.myCurrentLocationArray = [savedProfile objectForKey"locationArray"];
}
if(self.shareModel.myBestLocationDictFromTracker)
{
[self.shareModel.myCurrentLocationArray addObject:self.shareModel.myBestLocationDictFromTracker];
[savedProfile setObject:self.shareModel.myCurrentLocationArray forKey"locationArray"];
}
if (![savedProfile writeToFile:fullPath atomically:FALSE] ) {
NSLog(@"Couldn't save Location.plist" );
}
}
每当有位置更新时,我都会调用上述函数将位置添加到 PList。您可以根据您真正需要记录的内容以任何方式使用它。
我认为它比管理器控制台日志要好得多,因为您可以提取 PList Out 并在您的 Mac 上保留一份副本以供将来分析等。我正在使用 iFunBox访问/提取 PList。
关于ios - 恢复过去的 NSLog,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/24028626/
|