13 如何打印方法名称和行号并有条件地禁用NSLog? 我正在做有关Xcode调试的演示,并希望获得有关有效使用NSLog的更多信息。 特别是,我有两个问题: 有没有一种方法可以轻松地NSLog当前方法的名称/行号? 有没有一种方法可以在编译发行代码之前轻松地“禁用”所有NSLogs? 446 objective-c cocoa cocoa-touch xcode nslog
5 与NSLog一起使用的“ toString()”的Objective-C等效项是什么? 有没有可以在自定义类中覆盖的方法,以便 NSLog(@"%@", myObject) 会被调用,它将打印对象的字段(或我认为重要的任何字段)?我想我正在寻找与Java等效的Objective-C toString()。 170 objective-c tostring nslog
12 确实不应该在生产代码上使用NSLog()吗? 在这个站点上我曾多次被告知,但我想确保确实如此。 我期望能够在整个代码中散布NSLog函数调用,并且Xcode / gcc在构建我的Release / Distribution构建时会自动剥离这些调用。 我应该避免使用吗?如果是这样,经验丰富的Objective-C程序员之间最常见的替代方法是什么? 155 iphone objective-c nslog
3 NSInteger的NSLog / printf说明符? A NSInteger在32位平台上为32位,在64位平台上为64位。是否有一个NSLog始终与大小匹配的说明符NSInteger? 建立 Xcode 3.2.5 llvm 1.6编译器(这很重要; gcc不会这样做) GCC_WARN_TYPECHECK_CALLS_TO_PRINTF 打开 这让我有些悲伤: #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSInteger i = 0; NSLog(@"%d", i); } return 0; } 对于32位代码,我需要说明%d符。但是,如果使用说明%d符,则在编译64位时会收到警告,提示我%ld改用。 如果我%ld用来匹配64位大小,则在编译32位代码时会收到一条警告,提示我%d改为使用。 如何同时解决两个警告?是否有我可以使用的说明符? 这也会影响[NSString stringWithFormat:]和[[NSString alloc] initWithFormat:]。 131 objective-c cocoa 32bit-64bit nslog nsinteger
2 NSLog以重写的描述方法记录对象的内存地址 我覆盖了对象的描述方法。我需要知道如何打印对象的内存地址以替换以下代码中的{???}: -(NSString *) description { return [NSString stringWithFormat:@"<SomeClass: %@>\nparmeterOne: %@\nparameterTwo: %@", {???}, self.parameterOne, self.paramterTwo]; } 我希望它在控制台中像这样打印: <SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages 116 objective-c nslog
11 警告:“不格式化字符串文字,不格式化参数” 自升级到最新的Xcode 3.2.1和Snow Leopard以来,我一直收到警告 “不格式化字符串文字,不格式化参数” 从以下代码中: NSError *error = nil; if (![self.managedObjectContext save:&error]) { NSLog([NSString stringWithFormat:@"%@ %@, %@", errorMsgFormat, error, [error userInfo]]); } 如果errorMsgFormat是一个NSString与格式说明(如:"print me like this: %@"),什么是错的上述NSLog电话吗?推荐的解决方法是什么,以便不生成警告? 110 objective-c warnings string-formatting nslog
6 带有CGPoint数据的NSLog 我有一个CGPoint被称为触摸点: UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self]; 我想将x坐标值输入到我的控制台日志中: NSLog(@"x: %s", point.x); 当我使用它时,此的日志输出是: x :(空) 我已经验证了使用调试器和变量监视程序调用时,该点不为null。 任何帮助表示赞赏, 谢谢 // :) 93 iphone cocoa cocoa-touch core-graphics nslog
9 iOS 10不打印NSLogs NSLogXcode 8.0 beta(8S128d)上没有任何内容。printf不变 这是我的代码: NSLog(@"hello from NSLog"); printf("hello from printf"); 这是iOS 9 Simulator上的输出: 2016-06-17 09:49:10.887 calmapp-dev[28517:567025] hello from NSLog hello from printf 这是iOS 10 Simulator的输出: hello from printf 88 ios xcode nslog xcode8 ios10