Iphone 如何打印或记录CGSize对象的值?

Iphone 如何打印或记录CGSize对象的值?,iphone,objective-c,ios4,Iphone,Objective C,Ios4,我试图记录(打印)CGSize对象的值,如下所示: CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49); NSLog(@"size of tab is %@",sizeOfTab); 本规范是否有任何错误;我的应用程序在控制NSLog语句时崩溃 谢谢 Prasad您可以调用以下命令来打印所需的值: NSLog(@"width = %f, height = %f", mySize.width, mySize.hei

我试图记录(打印)CGSize对象的值,如下所示:

CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);

NSLog(@"size of tab is %@",sizeOfTab);
本规范是否有任何错误;我的应用程序在控制NSLog语句时崩溃

谢谢
Prasad

您可以调用以下命令来打印所需的值:

NSLog(@"width = %f, height = %f", mySize.width, mySize.height);
试试这个

CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",NSStringFromCGSize(sizeOfTab));

发生崩溃的原因是
sizeOfTab
不是
NSString
格式。

CGSize
具有
CGFloat
类型的members宽度和高度。您可以使用以下命令打印它们

NSLog(@"Width = %f, height = %f",sizeOfTab.width, sizeofTab.height);

%@表示您正在尝试插入字符串。CGSize不是字符串,无法自动转换为字符串。这就是你的应用程序崩溃的原因。相反,您需要单独记录各个属性,如

NSLog(@"width is %f, height is %f.", sizeOfTab.width, sizeOfTab.height);
%之所以使用f,是因为宽度和高度属性的类型为float

对于其他格式转换,请参见文档:

As(我在键入并格式化此答案后注意到),还有UIKit函数,用于漂亮打印,其逆函数用于从
NSString
对象创建
CGSize
结构

苹果将
CGSizeFromString(
string
)的
string
参数记录如下:

一种字符串,其内容的形式为“{w,h}”,其中w是 宽度和h是高度。w和h值可以是整数或整数 浮动值。有效字符串的一个示例是@“{3.0,2.5}”。弦 未本地化,因此项目始终用逗号分隔


例子 输出
Pretty printed size:{320568}

其他有用的功能()
  • CGRectGetHeight()
  • CGRectGetWidth()

    • 这里self.view是UIView类的视图。您可以使用此日志打印任何帧

            NSLog(@"self.view.Frame=%@", NSStringFromCGRect(self.view.frame));
      

      酷这是我今天学到的新东西+1,但我不会删除我的答案:-P@Praveen:谢谢。。很高兴今天我能帮你学点新东西。。。只是报恩而已。通过SO,我一直并仍然是此类信息的接收端。@7KV7发生崩溃的原因是
      sizeOfTab
      不是对象(任何对象都可以工作,而不仅仅是
      NSString
      CGSize
      是一个结构。谢谢,它工作得很好,但是它显示{nan,49},什么是nan?@Prasad:nan我想它不代表数字。什么是tabCount?尝试记录
      self.frame.size.width/tabCount
      欢迎使用SO+谢谢你的详细回答。我环顾四周,看到有那么多人在问问题之前从不看文档,真是令人惊讶。我将链接放在那里,这样我们就不会再遇到另一个问题,即如何打印int.NSStringFromCGSize()和NSStringFromCGRect()
            NSLog(@"self.view.Frame=%@", NSStringFromCGRect(self.view.frame));