Pra*_*sad 86 iphone objective-c ios4
我试图记录(打印)CGSize对象的值,如下所示:
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",sizeOfTab);
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题; 我的应用程序崩溃,而控制权来自NSLog语句.
谢谢普拉萨德
vis*_*kh7 210
试试这个
CGSize sizeOfTab = CGSizeMake(self.frame.size.width/tabCount, 49);
NSLog(@"size of tab is %@",NSStringFromCGSize(sizeOfTab));
Run Code Online (Sandbox Code Playgroud)
发生崩溃,因为sizeOfTab不是NSString格式.
Luk*_*uke 55
您可以调用以下内容来打印您之后的值:
NSLog(@"width = %f, height = %f", mySize.width, mySize.height);
Run Code Online (Sandbox Code Playgroud)
yur*_*riq 11
正如JoeBlow所提到的(我注意到在输入并格式化了这个答案之后),还有UIKit函数NSStringFromCGSize(),用于漂亮的打印,以及它的逆CGSizeFromString(),用于CGSize从NSString对象创建结构.
Apple记录string参数如下:CGSizeFromString(string)
一个字符串,其内容的格式为"{ w,h }",其中w是宽度,h是高度.的瓦特和ħ值可以是整数或浮点值.有效字符串的示例是@"{3.0,2.5}".字符串未本地化,因此项目始终用逗号分隔.
CGSize size = CGSizeFromString(@"{320,568}");
NSLog(@"Pretty printed size: %@", NSStringFromCGSize(size));
Run Code Online (Sandbox Code Playgroud)
Pretty printed size: {320, 568}
%@表示您正在尝试插入字符串.CGSize不是字符串,不能自动转换为一个字符串.这就是你的应用程序崩溃的原因.相反,您需要单独记录各个属性,例如
NSLog(@"width is %f, height is %f.", sizeOfTab.width, sizeOfTab.height);
Run Code Online (Sandbox Code Playgroud)
使用%f是因为width和height属性属于float类型.
对于其他格式转换,请参阅文档:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html
| 归档时间: |
|
| 查看次数: |
38277 次 |
| 最近记录: |