OC 打印结构体的内容

OC结构体(如NSRect,NSSize,NSPoint等)类型的结构体变量不是对象,所以要想整体打印他们内容。必须事先把它们转换为OC字符串类型,常用的方法就是直接使用NSStringFromXxx...方法即可

一、NSRage
void range()
{
    NSRange range=NSMakeRange(8, 5);
    NSLog(@"location=%zi",range.location);
    NSLog(@"length=%zi",range.length);
    NSString *str=NSStringFromRange(range);//把range这个结构体转成对象。
    NSLog(@"%@",str);

}
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        range();    
    }
    return 0;
}

二、NSPoint:是一个结构体。
void point()
{
    NSPoint p;
    p.x=1;
    p.y=10;
       p=NSMakePoint(1, 10);//快速创建point函数
       p=CGPointMake(1,10);//这也是创建point函数的一种方式,这个更常用,CG代表CoreGraphic框架
    NSString *str=NSStringFromPoint(p);//要把结构体转正oc对象才能打印
    NSLog(@"%@",str);

}
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        point();

        
    }
    return 0;
}
三、NSsize——是一个结构体
void size()
{
    NSSize s;
    s.height=10;
    s.width=20;
    s=NSMakeSize(15, 20);//快速创建size函数
    s=CGSizeMake(15, 20);//这也是创建size函数的一种方式,这个更常用,CG代表CoreGraphic框架
    NSString *str=NSStringFromSize(s);//要把结构体转正oc对象才能打印
    NSLog(@"size=%@",str);
}
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        size();
        
    }
    return 0;
}
NSRact--包含了length wide和x y
void rect()
{
    NSRect rect;
    rect.origin.x=10;
    rect.origin.y=11;
    rect.size.width=90;
    rect.size.height=100;
    rect=NSMakeRect(20, 10, 100, 90);//简便方法
 
    rect=CGRectMake(100, 100, 100, 100);//简便方法
    NSString *str=NSStringFromRect(rect);//转成对象,再打印。
    NSLog(@"%@",str);
}
int main(int argc, const char * argv[])
{
    @autoreleasepool {
        rect();   
    }
    return 0;
}


你可能感兴趣的:(OC 打印结构体的内容)