所以这个答案DoIneedtodisableNSLogbeforereleaseApplication?提供了一种在生产环境中禁用NSLog的好方法,但不幸的是,这种解决方案似乎不适用于Swift项目。我的方法是将以下代码放在桥接header.h文件中,我正在为项目中的某些pod使用该文件。#ifdefDEBUG#defineDLog(...)NSLog(@"%s%@",__PRETTY_FUNCTION__,[NSStringstringWithFormat:__VA_ARGS__])#else#defineDLog(...)do{}while(0)#endif但是,在Swift代码
在ObjectiveC中,您可以记录正在调用的方法:NSLog(@"%s",__PRETTY_FUNCTION__)通常这是从日志记录宏中使用的。尽管Swift不支持宏(我认为),但我仍然希望使用包含被调用函数名称的通用日志语句。这在Swift中可能吗?更新:我现在使用这个全局函数进行日志记录,可以在这里找到:https://github.com/evermeer/Stuff#print您可以使用以下方式安装:pod'Stuff/Print'代码如下:publicclassStuff{publicenumlogLevel:Int{caseinfo=1casedebug=2casewar
在一个类的dealloc方法中,我将如何打印出被释放实例的ID(或其他一些唯一标识符)?-(void)dealloc{NSLog(@"_deallocing:??");[superdealloc];}这可能吗?我只是想在控制台中获得更多反馈,以帮助学习。非常感谢-gary- 最佳答案 如果你特别想要对象的内存地址(如果你的类中没有实现,我想它可以被认为是一个“标识符”),你可以使用这个:NSLog(@"deallocing%p",self);如果您有多个特定类的实例并试图确定哪个实例在何时被释放,这会很有帮助。
当我使用NSLog()时,从ObjectiveC的背景开始,它会在文本前面加上日期时间戳,但是当我在Swift上使用print()时,它只会打印文字所以有办法让它也打印时间戳,还是我做错了什么? 最佳答案 因为print不是NSLog。就这么简单。NSLog是Foundation中的一个日志记录工具,它写入出现在控制台上的AppleSystemLog工具。print(…)是Swift标准库中的一个打印函数,它写入标准输出,在调试session中显示在控制台上。您可以将Date()添加到您的print参数中以打印当前时间和日期。(或D
如何使用NSLog打印NSData对象的内容:-(void)post:(NSString*)msgto:(NSString*)link{NSString*myRequestString=[NSStringstringWithFormat:@"message=%@",msg];NSData*myRequestData=[NSDatadataWithBytes:[myRequestStringUTF8String]length:[myRequestStringlength]];NSMutableURLRequest*request=[[NSMutableURLRequestalloc]in
我习惯于编程和查看日志消息。我知道您曾经能够在调试Cocoa应用程序时使用NSLog()来跟踪消息。在iPhoneXcode开发环境中编码时“跟踪”消息的最佳方式是什么? 最佳答案 在Xcode中有一种更方便的方式来跟踪日志消息,那就是使用断点操作。在您想要添加printf或NSLog的代码行上,设置断点,然后按住Control键单击它并选择“编辑断点”。在出现的蓝色气泡中,单击右侧的+按钮打开断点操作:alttexthttp://idisk.mac.com/cdespinosa/Public/Breakpoint%20Action
是否可以将每个NSLog不仅写入控制台,还写入文件?我想准备这个而不将NSLog替换为someExternalFunctionForLogging。替换所有NSLog将是真正的问题。也许有可能从控制台解析数据或捕获消息? 最佳答案 选项1:使用ASLNSLog将日志输出到ASL(Apple的syslog版本)和控制台,这意味着当您使用iPhone模拟器时,它已经写入您Mac中的文件。如果您想阅读它,请打开应用程序Console.app,然后在过滤器字段中输入应用程序的名称。要在您的iPhone设备上执行相同操作,您需要使用ASLAP
我正在重写一个对象的描述方法。我需要知道如何打印对象的内存地址来替换下面代码中的{???}:-(NSString*)description{return[NSStringstringWithFormat:@"\nparmeterOne:%@\nparameterTwo:%@",{???},self.parameterOne,self.paramterTwo];}我希望它像这样在控制台中打印:parameterOne:12parameterTwo:sausages 最佳答案 要打印地址,请使用%p格式说明符和自指针:-(NSStrin
NSInteger在32位平台上是32位,在64位平台上是64位。是否有一个总是匹配NSInteger大小的NSLog说明符?设置Xcode3.2.5llvm1.6编译器(这很重要;gcc不这样做)GCC_WARN_TYPECHECK_CALLS_TO_PRINTF开启这让我有些悲伤:#importintmain(intargc,constchar*argv[]){@autoreleasepool{NSIntegeri=0;NSLog(@"%d",i);}return0;}对于32位代码,我需要%d说明符。但是,如果我使用%d说明符,则在编译64位时会收到警告,建议我改用%ld。如果我
我已经检查了几个关于如何将UIColor代码转换为HEX的链接,但是我不确定如何调用该方法以在NSLog中显示它们。我没有评论的声誉,所以作为问题发布是我最后的手段。我希望它在我在日志中运行我的应用程序时显示。其次,我在哪里输入RGB颜色编号(R=30,G=171,B=13)?我看到所有示例都使用Array[0],[1],[2]通常指的是索引位置,那么我在哪里添加颜色值?我有这个代码:-(NSString*)hexFromUIColor:(UIColor*)color{if(CGColorGetNumberOfComponents(color.CGColor)我检查过的链接:hexco