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框架导入就可以了.
好了, 这次我们就讲到这里, 下次继续~~~