Foundation框架: 5.常用结构体知识补充

前面我们已经把常用的四个结构体学完了, 知道怎么去创建怎么去使用了, 但还有一些小细节没有补充完, 下面让我们一起来看看吧:





例子:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    // 用来比较两个点是否相同(x, y)
    BOOL p = CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));
    
    // 用来比较两个rect是否相同rect(CGPoint, CGSize)
    BOOL r = CGRectEqualToRect(CGRectMake(10, 10, 50, 50), CGRectMake(10, 10, 50, 50));
    
    // 用来比较两个Size是否相同(width, height);
    BOOL s = CGSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(10, 10));
    
    NSLog(@"p = %d, r = %d, s = %d", p, r, s);
    
    return 0;
}

打印出来的结果:

2015-02-03 14:46:23.913 1.NSRange[12445:1054605] p = 1, r = 1, s = 1

PS:该方法是用来判断两个对象的point, size, rect是否相同, 返回的类型是BOOL类型.





例子:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    CGRect r = CGRectZero;
    CGSize s = CGSizeZero;
    CGPoint p = CGPointZero;
    
    NSString *str1 = NSStringFromRect(r);
    NSString *str2 = NSStringFromSize(s);
    NSString *str3 = NSStringFromPoint(p);
    
    NSLog(@"%@", str1);
    NSLog(@"%@", str2);
    NSLog(@"%@", str3);

    return 0;
}

打印出来的结果:

2015-02-03 14:50:09.117 1.NSRange[12460:1055726] {{0, 0}, {0, 0}}
2015-02-03 14:50:09.118 1.NSRange[12460:1055726] {0, 0}
2015-02-03 14:50:09.118 1.NSRange[12460:1055726] {0, 0}

PS: 该方法是默认所有的值都是0, 如果CGSize使用CGSizeZero, 那么它的width和height都为0, CGRect和CGPoint也是一样.





这里还要说一下, 一般以NS开头的对象, 方法等等之类的都是Foundation框架的, 而以CG开头的对象, 方法一般都是CoreGraphics框架的, 而Foundation这个框架里面只是有CoreGraphics框架里的声明而已, 一旦编译器报CG开头的方法没有定义, 只要把CoreGraphics框架导入就可以了.




好了, 这次我们就讲到这里, 下次继续~~~

posted @ 2015-02-03 15:21  背着吉他去流浪  阅读(183)  评论(0编辑  收藏  举报