HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用NSLog的奇怪行为大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用NSLog检查@L_675_0@UITextView.我的代码中有以下日志记录:
NSLog(@"textView: %@",textView);
    NSLog(@"textView.frame: %@",textView.framE);
    NSLog(@"[textView frame]: %@",[textView frame]);

在控制台的输出中,我得到以下内容

2010-11-29 22:00:38.252 MenuMaker[57602:207] textView: <UITextView: 0x3b3afe0; frame = (0 0; 320 387); text = 'blah...'; clipsToBounds = YES; autoresize = RM+BM; layer = <CALayer: 0x3b3afa0>>
2010-11-29 22:00:38.254 MenuMaker[57602:207] textView.frame: (null)
2010-11-29 22:00:38.254 MenuMaker[57602:207] [textView frame]: (null)

第一行输出,因为它包含’frame =(0 0; 320 387)’位,导致我相信UITextView的框架变量都是设置的.但为什么在这种情况下接下来的两行@L_874_6@为空?他们不应该转储框架的值吗?

提前致谢

解决方法

正如其他人所指出的,CGRect只是@L_675_0@结构,因此缺少一种描述方法(这是NSString的StringWithFormat静态方法 – NSLog使用的格式字符串替换%@).因此,您不能直接将其传递给NSLog.

但是,不需要像建议一样输出任何值. Cocoa提供了许多内置的方法,将多个Core Graphics结构渲染为@L_675_0@字符串:

NSStringFromCGRect()
NSStringFromCGPoint()
NSStringFromCGSize()
NSStringFromCGAffineTransform()

等等.因此,以字符串的形式输出CGRect变得非常容易:

NSLog(@"%@",NSStringFromCGRect(rect));

您可以在“字符串转换”下找到所有这些帮助方法here.

大佬总结

以上是大佬教程为你收集整理的ios – 使用NSLog的奇怪行为全部内容,希望文章能够帮你解决ios – 使用NSLog的奇怪行为所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。