亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

OC語言-07-OC語言-Foundation框架

2019-11-14 18:30:57
字體:
來源:轉載
供稿:網友

結構體

  • NSRange/CGRange

    • 用來表示一個元素在另一個元素中的范圍,NSRange等價于CGRange
    • 包含兩個屬性:

      • NSUInteger location:表示一個元素在另一個元素中的位置
      • NSUInteger length:表示該元素的長度
    • 若找不到指定的元素,將返回NSNotFound(整型-1)
    • 常用函數

      • NSRange NSMakeRange(NSUInteger loc, NSUInteger len)
        創建一個NSRange類型的變量,將其兩個屬性初始化為loc和len
        并返回創建好的變量
      • BOOL NSLocationInRange(NSUInteger loc, NSRange range)
        查看某個位置是否在某個范圍內,返回一個BOOL類型數據
      • BOOL NSEqualRanges(NSRange range1, NSRange range2)
        判斷兩個范圍是否相等,當range1.location = range2.location
        且range1.length = range2.length時才相等
      • NSString *NSStringFromRange(NSRange range)將一個range
        轉換成字符串
      • NSRange NSStringFromRange(NSString *string)將一個字符串
        轉換成range
  • NSPoint/CGPoint

    • 用來存儲一個點,NSPoint等價于CGPoint
    • 包含兩個屬性:

      • CGFloat x:表示該點的橫坐標值
      • CGFloat y:表示該點的縱坐標值
    • 常用函數

      • NSPoint NSMakePoint(CGFloat x, CGFloat y),用來創建一
        個點,并用x與y初始化成員變量
      • BOOL NSEqualPoints(NSPoint aPoint, NSPoint bPoint)
        判斷aPoint與bPoint是否為同一個點
      • BOOL NSPointInRect(NSPoint aPoint, NSRect aRect)判斷點
        aPoint是否在矩形aRect中
      • NSString *NSStringFromPoint(NSPoint aPoint),將一個點
        轉化為字符串
      • NSPoint NSPointFromString(NSString *aString),將一個字
        符串轉化成一個點
  • NSSize/CGSize

    • 用來存儲一個元素的尺寸,NSSize等價于CGSize
    • 包含兩個屬性:

      • CGFloat width:表示該元素的寬度
      • CGFloat height:表示該元素的高度
    • 常用函數

      • NSSize NSMakeSize(CGFloat w, CGFloat h),用來創建一個
        NSSize元素,并用x和y初始化成員變量
      • BOOL NSEqualSizes(NSSize aSize, NSSize bSize),判斷尺
        寸aSize與尺寸bSize是否相等
      • NSString *NSStringFromSize(NSSize aSize),將尺寸元素aSize
        轉換成字符串
      • NSSize NSSizeFromString(NSString *aString),將字符串轉換
        成尺寸元素aSize
  • NSRect/CGRect

    • 用來存儲一個元素左上角的點和該元素的尺寸信息, NSRecta
      等價于CGRect
    • 包含兩個屬性:

      • CGPoint origin:用來表示該元素左上角的點
      • CGSize size:用來表示該元素的尺寸
    • 常用函數

      • CGRect CGRectMake(CGFloat x, CGFloat y, CGFloat width,
        CGFloat height),用來創建一個CGRect變量,并用x和y初始化
        成員變量origin,用width和height初始化成員變量size
      • bool CGRectEqualToRect(CGRect rect1, CGRect rect2),
        比較兩個rect1與rect2是否相等
      • bool CGRectContainsPoint(CGRect rect, CGPoint point),
        判斷點point是否在元素rect中
      • bool CGRectContainsRect(CGRect rect1, CGRect rect2),
        判斷元素rect1是否包含rect2,rect1與rect2不為空,不包括邊界
  • 示例

     #import <Foundation/Foundation.h> int main() {	 @autoreleasepool {	     BOOL result; //用于存儲函數的返回值	     NSString *str; //用于存儲轉化得到的字符串	     //創建兩個點對象	     NSPoint point = NSMakePoint(5, 8);	     NSPoint point2 = NSMakePoint(50, 8);	     //創建兩個尺寸對象	     NSSize size = NSMakeSize(10, 20);	     NSSize size2 = NSMakeSize(10, 20);	     //創建兩個矩形對象	     NSRect rect = NSMakeRect(0, 0, 20, 30);	     NSRect rect2 = NSMakeRect(0, 1, 20, 30);	     //判斷point與point2是否相同	     result = NSEqualPoints(point, point2);	     //判斷point是否在某個矩形rect	     result = NSPointInRect(point, rect);	     //判斷point2是否在某個矩形rect	     result = NSPointInRect(point2, rect);	     //判斷size與size2是否相同	     result = NSEqualSizes(size, size2);	     //判斷rect與rect2是否相同	     result = NSEqualRects(rect, rect2);	     //判斷rect是否包含rect2	     result = CGRectContainsRect(rect, rect2);	     //將point、size、rect轉化成字符串	     str = NSStringFromPoint(point);	     str = NSStringFromSize(size);	     str = NSStringFromRect(rect);	}	return 0;}

字符串

  • NSString

    • 是一個OC類,用于操作OC字符 串
    • 創建的OC字符串對象是不可變 的
    • 通常情況下,一個類方法對應一個完成相同功能的對象方 法
    • ,返回不可變字符 串
    • 常用創建字符串的的類方法(通常以類名開頭 )

      • + (instancetype)string,創建一個NSString對象
      • + (instancetype)stringWithString:(NSString *)string,創建一個NSString對象,并用OC字符串String初始 化
      • + (instancetype)stringWithCharacters:(const unichar *)character slength:(NSUInteger)length,通過字符串指針以及一定長度的字符串創建一個NSString對 象
      • + (instancetype)stringWithFormat:(NSString *)format ,合成一個字符串
      • + (instancetype)stringWithCString:(const char *)cStringencoding:(NSStringEncoding)enc,通過一個C語言字符串創建一個OC字符 串
      • + (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error, 通過統一資源定位符URL創建OC字符 串
      • + (instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;通過文件內容創建OC字符串
    • 常用創建字符串的對象方法

      • 對象方法與類方法相似,通常以init開頭,這里不在列舉
    • 常用的字符串操作方法

      • - (unichar)characterAtIndex:(NSUInteger)index,返回字符串中指定索引位置的字符
      • - (void)getCharacters:(unichar *)buffer range:(NSRange), aRange,找到指定位置的字符串,存儲到buffer 中
      • - (void)getCharacters:(unichar *)buffer,獲取buffer中的字符串
      • - (NSString *)substringWithRange:(NSRange)range,返回某個范圍的子串
      • - (NSComparisonResult)compare:(NSString *)string,比較兩個字符串,返回枚舉NSComparisonResult的變量
      • - (BOOL)containsString:(NSString *)aString,判斷是否包含字符串aString
      • - (NSRange)rangeOfString:(NSString *)aString,返回該字符串中aString的范圍
  • NSMutableString

    • 繼承自NSString,創建可變的字符串對象
    • NSMutableString擴充的方法

      • - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString,用aString替換指定范圍的字符串
      • - (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc,在索引loc處插入字符串aString
      • - (void)deleteCharactersInRange:(NSRange)range,刪除指定范圍的字符串
      • - (void)appendString:(NSString *)aString,將aString拼接在該字符串的末尾,擴充字符串
      • - (void)appendFormat:(NSString *)format,通過一個和成的子符串format來擴充字符串
      • - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile,將字符串寫到以字符串形式表示路徑的文件中

集合

  • NSArray/NSMutableArray

    • OC數組,數組對象為任何OC對象,非OC對象必須轉化成相應的OC
      對象
    • 數組元素不能為nil,nil是OC數組結束的標志
    • 可以通過@[]快速,返回不可變數組
    • 常用的創建數組類方法

      • + (instancetype)array,創建一個空的數組對象
      • + (instancetype)arrayWithObject:(id)anObject,通過OC對象來創建數組
      • + (NSArray )arrayWithContentsOfFile:(NSString )path通過文件內容創建數組
      • + (NSArray )arrayWithContentsOfURL:(NSURL )url,通過統一資源定位符URL創建數組
    • 常用的創建數組對象方法

      • 對象方法與類方法相似,以init開頭
    • 常用的數組操作函數

      • - (NSUInteger)indexOfObject:(id)anObject,找到指定對象的索引
      • - (BOOL)isEqualToArray:(NSArray *)otherArray,判斷兩個數組中的元素是否相同
      • - (NSArray *)sortedArrayUsingSelector:(SEL)comparator通過SEL調用方法,來對數組排序
      • - (NSArray *)subarrayWithRange:(NSRange)range,返回數組中子數組的范圍
      • - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block,枚舉數組中的元素并調用block,通常用于遍歷一個數組
    • NSMutableArray繼承自NSArray,創建可變數組
    • NSMutableArray擴充的方法

      • - (void)addObject:(id)anObject,給數組添加一個OC對象
      • - (void)insertObject:(id)anObject atIndex:(NSUInteger)index在指定索引位置插入一個OC對象
      • - (void)removeObjectAtIndex:(NSUInteger)index,刪除某個索引位置的對象
      • - (void)removeAllObjects,刪除所有的數組元素
      • - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject,用指定對象替換指定索引位置的對象
      • - (void)removeObject:(id)anObject inRange:(NSRange)range,刪除某個范圍的對象
  • NSSet/NSMutableSet

    • NSSet,無序數組,不可變
    • NSMutableSet,無序數組,可變
  • NSDictionary/NSMutableDictionary

    • NSDictionary,不可變字典類
    • 元素為Object:key鍵值對,key值必須唯一,鍵值對無序
    • 常用的創建字典對象的方法

      • + (instancetype)dictionaryWithObject:(id)object forKey:(id < NSCopying >)key,通過鍵值對創建字典
      • - (instancetype)initWithObjects:(const id [])objects forKeys:(const id [])keys count:(NSUInteger)cnt,通過objects數組和keys數組創建字典
      • + (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ...通過多個鍵值對創建數組
    • 常用的字典操作函數

      • - (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary判斷兩個字典是否相等
      • - (NSArray )objectsForKeys:(NSArray )keys notFoundMarker:(id)marker,通過一個鍵值數組返回一個對象數組
      • - (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key,id obj, BOOL *stop))block 通過block來遍歷字典
      • - (void)removeObjectForKey:(id)aKey,刪除指定鍵值的對象
      • - (void)removeAllObjects,刪除所有的對象

NSNumber與NSValue

  • NSValue

    • OC類,用于封裝普通類型數據
  • NSNumber

    • 繼承自NSValue,通常用于將普通數據類型如int、char等,轉換為相應的OC對象
    • 常用的初始化類方法

      • + (NSNumber *)numberWithChar:(char)value,將char類型轉換成OC對象
      • 其他的方法與上述方法類似,只需將char換成其他類型名,如:int,long等
    • 常用的初始化對象方法

      • - (NSNumber *)initWithInt:(int)value,將int類型數據轉換為OC對象
      • 其他方法與上述方法相似,只需將Int換成相應的數據類型,如char,short等
    • 常用操作NSNumber對象的方法

      • - (NSComparisonResult)compare:(NSNumber *)otherNumber比較兩個NSNumber對象,返回枚舉類型
      • - (BOOL)isEqualToNumber:(NSNumber *)number,比較兩個NSNumber對象,返回BOOL類型

NSDate

  • 作用

    • OC類,用于存儲時間信息
    • 可以通過NSDateFormatter指定時間的格式
  • 常用的方法

    • - (instancetype)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti, 創建一個時間對象,用ti初始化,NSTimeInterval本質是long類型
    • - (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate, 返回自某個時間其到代碼調用所經過的秒數
    • - (NSComparisonResult)compare:(NSDate *)other,比較兩個日期,返回枚舉類型
    • - (BOOL)isEqualToDate:(NSDate *)otherDate,比較兩個日期是否相等
    • /timeIntervalSince1970是一個成員變量,可以通過它調用get方法返回從1970年起經歷的時間(單位為:秒)
    • + (instancetype)date,返回當前的0時區時間

示例


#import <Foundation/Foundation.h>int main(){    @autoreleasepool {        //定義一個NSDate類型,用于輸出程序執行時的時間        NSDate *date = [NSDate date];        //指定時間的格式        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];        formatter.dateFormat = @"yyyy年/MM月/dd日/ HH:mm:ss";        //將時間類型轉換為字符串        NSString *time = [formatter stringFromDate:date];        NSLog(@"%@", time);                //定義一個范圍,用于指定某個范圍的字符串        NSRange range = NSMakeRange(5, 4);        //快速創建一個NSString對象,存儲姓名        NSString *str = @"name:Jack";        //創建一個NSNumber對象,存儲學號        NSNumber *number = [NSNumber numberWithInt:1];        //創建一個不可變數組,存儲多個姓名對象        NSArray *objects = @[str, @"name:Lily", @"name:Lucy"];        //創建一個可變數組,存儲多個學號對象        NSMutableArray *keys = [NSMutableArray arrayWithObjects:number, @2, @3, nil];        //創建一個可變字典,通過數組objects,keys初始化        NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] initWithObjects:objects forKeys:keys];                //快速遍歷objects數組        for (id obj in objects)        {            //找到obj中指定范圍的子串            NSString *name = [obj substringWithRange:range];            NSLog(@"%@", name);        }                //通過block遍歷字典中的元素        [dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){                        NSLog(@"%@-%@", key, [obj substringWithRange:range]);            if ([[obj substringWithRange:range] isEqualTo:@"Jack"])            {                //當遍歷到Jack時停止                *stop = YES;            }        }];                //清除key值為@1的鍵值對        [dictionary removeObjectForKey:@1];                //檢測結果,此時將遍歷字典中所有的元素,不會停止        [dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){                        NSLog(@"%@-%@", key, [obj substringWithRange:range]);            if ([[obj substringWithRange:range] isEqualTo:@"Jack"])            {                //當遍歷到Jack時停止(字典中無該鍵值對,不會停止)                *stop = YES;            }        }];    }    return 0;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美专区日韩视频| 97免费中文视频在线观看| 亚洲国产成人爱av在线播放| 亚洲区一区二区| 亚洲综合中文字幕68页| 欧美久久精品一级黑人c片| 久久国产精品久久久久| 亚洲最大成人免费视频| 亚洲日本成人女熟在线观看| 久久久精品免费视频| 欧美丰满片xxx777| 久久免费观看视频| 欧美日韩国产中字| 亚洲精品丝袜日韩| 在线性视频日韩欧美| 国产成人aa精品一区在线播放| 欧洲美女7788成人免费视频| 日韩精品极品视频免费观看| 亚洲精选在线观看| 亚洲va欧美va国产综合久久| 亚洲女性裸体视频| 国产视频观看一区| 尤物99国产成人精品视频| 精品露脸国产偷人在视频| 欧美精品少妇videofree| 亚洲国产精品一区二区三区| 欧美日韩亚洲视频一区| 亚洲成av人片在线观看香蕉| 成人免费视频网址| 欧美一区二区三区……| 久久久伊人日本| 国产一区二区三区18| 欧美国产第一页| 国产不卡av在线免费观看| 日韩美女福利视频| 91伊人影院在线播放| 日韩一区二区三区xxxx| 精品久久久久久久久中文字幕| 国产精品久久一| 北条麻妃99精品青青久久| 欧美成年人视频网站欧美| 91视频-88av| 亚洲国产欧美一区| 欧美国产日韩中文字幕在线| 国产精品色婷婷视频| 色一情一乱一区二区| 国产精品啪视频| 精品无人区乱码1区2区3区在线| 国产精品视频网址| 国产亚洲视频中文字幕视频| 91麻豆桃色免费看| 久久理论片午夜琪琪电影网| 欧美成人免费播放| 日韩在线视频国产| 啪一啪鲁一鲁2019在线视频| 在线播放日韩欧美| 久久精品国产欧美激情| 性色av一区二区三区免费| 精品久久久久久久大神国产| 欧美日韩国产va另类| 成人久久18免费网站图片| 国产成人午夜视频网址| 欧美日韩色婷婷| 国产视频亚洲视频| 91精品在线观看视频| 91精品久久久久久久久久入口| 欧美日韩一区二区免费视频| 国产精品香蕉av| 欧美日韩美女视频| 欧美最猛性xxxxx(亚洲精品)| 欧美一级bbbbb性bbbb喷潮片| 日韩一级裸体免费视频| 久久香蕉精品香蕉| 日韩黄色高清视频| 国产精品日韩欧美| 欧美亚洲成人免费| 亚洲欧美日韩久久久久久| 538国产精品一区二区免费视频| 97久久伊人激情网| 26uuu亚洲国产精品| 国产精品色视频| 精品视频久久久久久久| 韩国19禁主播vip福利视频| 清纯唯美亚洲综合| 欧美激情网站在线观看| 午夜精品一区二区三区在线视| 国产免费观看久久黄| 成人免费网站在线看| 日韩欧美福利视频| 97精品国产91久久久久久| 精品自拍视频在线观看| 国产亚洲精品高潮| 国产美女直播视频一区| 亚洲激情国产精品| 日本韩国在线不卡| 国产精品美女在线| 久久不射电影网| 欧美特级www| 91大神在线播放精品| 日本国产一区二区三区| 久久免费在线观看| 久久久免费电影| 久青草国产97香蕉在线视频| 热久久这里只有| 最近2019中文免费高清视频观看www99| 久久偷看各类女兵18女厕嘘嘘| 琪琪第一精品导航| 在线观看国产精品日韩av| 亚洲免费影视第一页| 久久久日本电影| 国产国产精品人在线视| 在线观看成人黄色| 国产成人精品国内自产拍免费看| 欧美电影免费观看高清| 97**国产露脸精品国产| 亚洲第一中文字幕在线观看| 色爱av美腿丝袜综合粉嫩av| 在线亚洲欧美视频| 亚洲韩国青草视频| 国产精品久久久久久婷婷天堂| 欧美激情一区二区三区在线视频观看| 欧美日韩精品在线| 欧美猛少妇色xxxxx| 中文字幕亚洲色图| 在线看国产精品| 91爱视频在线| 国产精品一区二区久久久久| 91九色综合久久| 国产精品久久久久久久7电影| 欧美一区亚洲一区| 久久久亚洲影院你懂的| 亚洲人精选亚洲人成在线| 精品露脸国产偷人在视频| 精品小视频在线| 欧美国产精品日韩| 日韩av一区二区在线| 久久久久久久久爱| 538国产精品一区二区免费视频| 欧美成人午夜激情在线| 精品国产91乱高清在线观看| 欧美一级视频在线观看| 91色中文字幕| 久久久www成人免费精品| 久久久久久久国产精品视频| 国内自拍欧美激情| 国产99在线|中文| 亚洲天堂免费在线| 欧美日韩国产一区在线| 色小说视频一区| 91av视频在线播放| 中文字幕精品www乱入免费视频| 日韩精品一区二区视频| 亚洲国产精彩中文乱码av| 日韩性xxxx爱| 狠狠躁夜夜躁人人躁婷婷91| 久久精品99无色码中文字幕| 国产91精品最新在线播放| 欧美一级高清免费播放| 亚洲欧洲免费视频| 国产日韩在线看片| 亚洲老板91色精品久久| 久久人人爽人人爽人人片av高清| 一本色道久久88综合亚洲精品ⅰ| 久久99久久99精品免观看粉嫩|