您好,登錄后才能下訂單哦!
Foundation框架
Foundation框架是所有iOS/MacOSX開發的基礎框架
最初版本由NextStep公司開發,故其前綴為NS
該框架中主要包含:
基本數據類型
常用函數
結構體及相關操作函數
枚舉類型
功能豐富的類
頭文件:
@import <Foundation/Foundation.h>
數值類型及數值對象
整型:
類型:NSInteger、NSUInteger
宏定義:NSIntegerMax、NSIntegerMin、NSUIntegerMax
浮點類型:(實型)
類型:CGFloat
宏定義:CGFLOAT_MAX、CGFLOAT_MIN
...
這些數值類型并不是Objective-C的對象,也就是說不能進行很多面向對象的操作
數值對象:
NSNumber將各種數值類型數據封裝成Objective-C對象
字面值初始化:
利用@關鍵字
NSNumber *num1 = @10; NSNumber *num2 = @YES; NSNumber *num3 = @'A'; NSNumber *num4 = @3.14; int age = 10; NSNumber *num5 = @(age);
數值對象的構造方法:
+ (NSNumber *)numberWithBool:(BOOL)value + (NSNumber *)numberWithChar:(char)value + (NSNumber *)numberWithDouble:(double)value + (NSNumber *)numberWithFloat:(float)value + (NSNumber *)numberWithInteger:(NSInteger)value + (NSNumber *)numberWithLong:(long)value ...
幾何數據結構體
此部分介紹的結構體,不是類,用描述一些幾何數據
NSRange表示范圍:
typedef struct _NSRange { NSUInteger location; //表示起始范圍 NSUInteger length; //表示范圍長度 } NSRange;
NSRange r1 = { 2, 4}; //不推薦 NSRange r2 = { .location=2, .length=4 }; //不推薦 NSRange r3 = NSMakeRange(2, 4); //推薦使用這種方式
CGSize表示二維尺寸:
struct CGSize { CGFloat width; //表示寬度 CGFloat height; //表示高度 }; typedef struct CGSize CGSize;
CGSize s1 = CGSizeMake(40, 60); NSLog(@"%@", NSStringFromCGSize(s1));
CGPoint表示位置
struct CGPoint { CGFloat x; CGFloat y; }; typedef struct CGPoint CGPoint;
CGPoint p1 = CGPointMake(10, 10); NSLog(@"%@", NSStringFromCGPoint(p1));
CGRect表示矩形的尺寸及位置
struct CGRect { CGPoint origin; CGSize size; }; typedef struct CGRect CGRect;
CGRect r1 = CGRectMake(0, 0, 100, 50); NSLog(@"%@", NSStringFromCGRect(r1));
其他常用函數
//比較兩個點是否相同 bool CGPointEqualToPoint(CGPoint point1, CGPoint point2); //比較兩個尺寸是否相同 bool CGSizeEqualToSize(CGSize size1, CGSize size2); //比價兩個Rect是否相同 bool CGRectEqualToRect(CGRect rect1, CGRect rect2); //判斷Rect中是否包含某個點 bool CGRectContainsPoint(CGRect rect, CGPoint point);
這些幾何數據類型,都有表示0的常量
CGPointZero CGSizeZero CGRectZero
幾何數據類型封裝成對象
數值類型可以封裝到NSNumber對象中
這些常用的結構體可以封裝到NSValue對象中,NSValue是NSNumber的父類
+ (NSValue *)valueWithRange:(NSRange)range + (NSValue *)valueWithCGPoint:(CGPoint)point + (NSValue *)valueWithCGSize:(CGSize)size + (NSValue *)valueWithCGRect:(CGRect)rect @property(readonly) NSRange rangeValue - (CGPoint)CGPointValue - (CGSize)CGSizeValue - (CGRect)CGRectValue
NSValue還可以封裝:
形變結構體CGAffineTransform
邊距結構體UIEdgeInsets
3D形變結構體CATransform3D
經緯度結構體MKCoordinate
...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。