我试图记录(打印)CGSize对象的值,如下所示:
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",sizeOfTab);
此代码有什么问题;我的应用程序崩溃,而控制权来自NSLog语句。
由于 普拉萨德
答案 0 :(得分:209)
试试这个
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",NSStringFromCGSize(sizeOfTab));
发生崩溃是因为sizeOfTab
不是NSString
格式。
答案 1 :(得分:54)
您可以调用以下内容来打印您所追求的值:
NSLog(@"width = %f, height = %f", mySize.width, mySize.height);
答案 2 :(得分:10)
作为JoeBlow mentioned(我在键入并格式化此答案后注意到),还有UIKit函数NSStringFromCGSize()
,用于漂亮的打印,以及它的反向,{{3用于从CGSize
对象创建NSString
结构。
Apple记录string
CGSizeFromString(
string
的 )
参数,如下所示:
一个字符串,其内容的格式为“{ w , h }”,其中 w 是 宽度和 h 是高度。 w 和 h 值可以是整数或 浮动值。有效字符串的示例是@“{3.0,2.5}”。字符串 未本地化,因此项目始终用逗号分隔。
CGSize size = CGSizeFromString(@"{320,568}");
NSLog(@"Pretty printed size: %@", NSStringFromCGSize(size));
Pretty printed size: {320, 568}
CGSizeFromString()
)答案 3 :(得分:6)
%@表示您正在尝试插入字符串。 CGSize不是字符串,不能自动转换为一个字符串。这就是你的应用程序崩溃的原因。相反,您需要单独记录单个属性,例如
NSLog(@"width is %f, height is %f.", sizeOfTab.width, sizeOfTab.height);
使用了%f,因为 width 和 height 属性的类型为 float 。
有关其他格式转换,请参阅文档:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html
答案 4 :(得分:3)
CGSize
的成员宽度和高度属于CGFloat
类型。您可以使用以下
NSLog(@"Width = %f, height = %f",sizeOfTab.width, sizeofTab.height);
答案 5 :(得分:2)
这里的self.view是UIView类的视图。您可以使用此日志打印任何帧。
NSLog(@"self.view.Frame=%@", NSStringFromCGRect(self.view.frame));