Tag: logging

使用新的swift os_log api读取日志

在iOS 10.0中弃用:os_log(3)已经取代asl(3) 所以iOS 10.0显然不赞成使用asl(Apple System Log)API,而是用非常有限的os_log apireplace它。 我使用类似于下面的代码片段的内容来读取正在运行的应用程序的日志写入,以在应用程序的uitextview中显示 – 现在它充满了弃用警告。 有谁知道用新的os_log api读取打印日志的方法吗? 因为我只看到一个写作的API( https://developer.apple.com/reference/os/1891852-logging )。 import asl let query = asl_new(UInt32(ASL_TYPE_QUERY)) let response = asl_search(nil, query) while let message = asl_next(response) { var i: UInt32 = 0 let key = asl_key(message, i) print(asl_get(message, key)) … } @Will Loew-Blosser的回答后编辑 https://developer.apple.com/videos/play/wwdc2016/721/很好地解释了将来会发生什么事情。 最大的好处是日志会被压缩成一些压缩格式,并且只能通过新的控制台应用程序进行扩展。 这几乎使我的使命变得绝望。 video中的这个人(Steve Szymanski)提到“所有的ASL日志API都被新的API取代”,“新的日志数据API将不会在这个版本中公开”,也就是asl_search 。 而那正是我所期待的! […]

使用Cocoa Lumberjack日志框架立即刷新日志语句,NSLog刷新到控制台的方式

许多iOS开发人员已经find了Cocoa伐木工人日志框架来满足简单的NSLog语句不需要的需求。 这让人想起Java世界中的Log4J。 无论如何,我已经为Lumberjack写了自己的自定义格式化程序,但是我没有看到有关如何立即刷新日志语句的任何文档。 例如,如果我正在遍历debugging器,并且碰到一条NSLog()语句,它会立即将日志语句刷新到控制台。 这就是我想从伐木工人的DDLogVerbose()调用中得到的行为。 现在,我回过头去把这些语句改成NSLog()语句,如果我想让它们在debugging一段代码的时候马上吐出来的话。 随着伐木工人如此强大,我认为有一种方法来configuration它,以毫不拖延地冲洗。 任何人都知道如何做到这一点?

魔法logging – 取主线程块ui,在后台返回nil

我是新来的魔法logging,但已经看到了一些问题上的计算器,并找不到我的问题的答案。 我必须使用这种types的构造来查找具有谓词的项目: NSArray *result = [MOSomeItems MR_findAllWithPredicate:predicate]; 在主线程结果返回一些值,但UI是冻结。 当使用这个构造时,结果返回零值: dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ NSArray *result = [MOSomeItems MR_findAllWithPredicate:predicate]; }); 在后台获取数据的最佳做法是什么?

iPhone RestKit如何启用RKLogDebug?

我试图debuggingRestKit对象映射,并注意到在整个代码中都有对RKLogDebug调用,但是看起来这个macros在某个地方是未定义的。 我怎样才能启用它?

在iOS应用程序中创build日志文件

所以在我的应用程序中,我有一堆数据,我想写入日志文件,然后在单击button时在UITextView显示它。 我知道如何切换UITextView,但我不知道如何创build和更新日志文件(在本地文件系统中)。 谢谢你的帮助。

创build单独的NSManagedObjectContext时出错

在进入我的问题之前,请看看这个图像。 这里是实际的数据模型: 我从Web API中检索一组logging,从中创build对象,将它们保存在核心数据中,并显示在“今日”视图中。 默认情况下,这些logging是针对当前date返回的。 用户可以点击“过去”button转到单独的视图,他可以从dateselect器视图中select过去或将来的date,并查看该选定date的logging。 这意味着我必须再次调用API来传递选定的date,检索数据并将这些数据保存在核心数据中并显示出来。 当用户离开这个视图时,这个数据应该被丢弃。 这是重要的一部分。 即使我得到一组新的数据,“今日”视图中当前date的旧原始数据也不能消失。 因此,如果/当用户返回到“今日”视图时,该数据应该在离开时立即可用,而无需应用程序调用API并再次获取当前date的数据。 我想创build一个单独的NSManagedObjectContext来保存这些临时数据。 我有一个名为DatabaseManager的单独的类来处理核心数据相关的任务。 这个类用`NSManagedObjectContext的实例初始化。 它在给定的上下文中创build托pipe对象类。 import CoreData import Foundation import MagicalRecord import SwiftyJSON public class DatabaseManager { private let context: NSManagedObjectContext! init(context: NSManagedObjectContext) { self.context = context } public func insertRecords(data: AnyObject, success: () -> Void, failure: (error: NSError?) -> Void) { let json = […]

核心数据并发`performBlockAndWait:`NSManagedObjectContext zombie

我从我发布的应用程序有一个以下的崩溃报告: synchronizeMyWords方法从数据库中提取实体,与主上下文父级创build私有队列上下文,最后保存结果。 所有操作都在后台线程中。 每次应用程序进入background和foreground时都会调用此方法。 这是一个简化的方法: – (AWSTask *)synchronizeMyWords { __weak typeof(self) weakSelf = self; AWSContinuationBlock block = ^id _Nullable(AWSTask * _Nonnull task) { if ([task.result isKindOfClass:[NSArray class]]) { NSArray * records = (NSArray *)task.result; NSManagedObjectContext * context = [NSManagedObjectContext MR_contextWithParent:[NSManagedObjectContext MR_defaultContext]]; [context performBlockAndWait:^{ for (NSDictionary * info in records) { [RDRWord MR_createEntityInContext:context]; } [context save:nil]; […]

NSFetchedResultsController更新错误的更新types

请在盲目投票之前查看这些意见。 这不是一个重复的问题。 首先 – 我正在使用MagicalRecord核心数据。 其次 – 我的UICollectionView填充UICollectionView 。 NSPredicate是… NSPredicate *eventPredicate = [NSPredicate predicateWithFormat:@"event = %@", self.event]; NSPredicate *deletedPredicate = [NSPredicate predicateWithFormat:@"deleted == NO"]; NSPredicate *compoundPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[eventPredicate, deletedPredicate]]; 当我使用Magical Record的saveWithBlock将新项目添加到CoreData时, collectionView正确更新并将更改animation到视图中。 问题是,当我将更改的值删除到@YES … [MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { Photo *photo = [[self photoAtIndexPath:[self.collectionView indexPathForCell:cell]] inContext:localContext]; photo.deleted = @YES; }]; 然后NSFetchedResultsController委托方法触发,除非它触发与更改typesNSFetchedResultsChangeUpdate 。 这不是它应该是。 它应该是NSFetchedResultsChangeDelete作为更改已删除的值应从删除请求中删除它。 […]

requestRecordPermission什么都不做

自iOS 7更新以来,录制应用程序发生了一些变化。 我有一个应用程序,曾经与iOS 5和6,但当我试图在iOS 7上运行它 – 录音没有回应。 我查了一下互联网,看到有一个需要调用的新方法。 我试图把这个代码放在viewDidAppear中: if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { if([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) { [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { NSLog(@"permission : %d", granted); }]; } } “授予”始终是1,虽然我没有授予任何许可,也没有看到任何请求popup。 顺便说一句我想要处理这个使用Xcode 4.6.3。 我用requestRecordPermission方法为AVAudioSession做了一个类,因为这个方法只在iOS 7中可用。 谢谢。

MagicalRecords从JSON / NSDictionary导入数据。 导入关系

我有关系的问题。 我必须NSManagedObject类Team和Player。 团队可以包含很多玩家。 玩家只能包含一个团队。 这是来自两个请求的JSON: /球队 { "id" : 1, "name" : "Chicago Bulls", "city" : "Chicago" }, { "id" : 2, "name" : "Detroit Pistons", "city" : "Detroit" }, … /播放器 { "id" : 1, "name" : "DJ Augustin", "teamId" : 1 }, { "id" : 2, "name" : "Carlos Boozer", "teamId" : 1 […]