1. 程式人生 > >Objective-C基本語法

Objective-C基本語法

OC的語法這裡就不給大家介紹了,大家慢慢熟悉。在OC的程式設計中大家可能不常見到C語言中函式的使用了,OC採用的是訊息傳送機制,將方法傳送給物件。方法分為

加號方法:靜態方法,又稱為類方法,由類來呼叫;方法由加號開頭。

減號方法:動態方法,又成為物件方法,由物件來呼叫;方法由加號開頭。

例如常見的alloc就是加好方法,init就是建好方法;同理便利構造器方法也是加好方法,對應的自定義初始化方法為減號方法。

//建立一個字串
    //inint
    NSString *str1 = [[NSString alloc]init];
    //string
    NSString *str2 = [NSString string];
    
    //在建立一個簡單型別的非空字串的時候,不需要使用初始化方法和便利構造器方法,直接賦值即可
    NSString *str4 = @"iphone";
    
    NSString  *name = @"jack";
    NSInteger num = 12;
    
    //初始化字串的時候,將其他型別的資料轉化成字串
    NSString  *str5 = [NSString stringWithFormat:@"%ld%@", num, name];
    NSLog(@"%@", str5);
    
    NSUInteger length = [str5 length];
    NSLog(@"%lu", length);
    
    NSString *str6 = @"人生若只如初見";
    NSLog(@"%lu", [str6 length]);
    
    //獲取子字串
    NSString *sub1 = [str6 substringToIndex:2];
    NSLog(@"%@", sub1);
    
    NSString *sub2 = [str6 substringFromIndex:5];
    NSLog(@"%@",sub2);
    
    //第一個引數表示擷取位置,第二個引數位置表示竊取長度
    NSString *sub3 = [str6 substringWithRange:NSMakeRange(2, 3)];
    NSLog(@"%@",sub3);
    
    //字串拼接
    //"人生"和"若只如"
    NSString *str7 = [sub1 stringByAppendingString:sub3];
    //"人生若只如"和"初見"
    NSString *str8 = [str7 stringByAppendingString:sub2];
    NSLog(@"%@", str8);
    
     //字串替換
    NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"初" withString:@"不"];
    NSLog(@"%@", str9);
    
    //字串相等
    BOOL b = [str8 isEqualToString:str9];
    NSLog(@"%hhd", b);
    
    //字串比較
    //OC中的排序有三種結果,對應的列舉值分別為-1, 0, 1
    NSString *str10 = @"ios";
    NSString *str11 = @"ioa";
    NSComparisonResult result = [str10 compare:str11];
    NSLog(@"%ld", result);

    NSString *str = @" 卻道故人心易變";
    //可變字串的建立可以直接使用便利構造器,也可以使用不可變字串建立一個可變字串
    NSMutableString *mutStr1 = [[NSMutableString alloc]initWithString:@"等閒變卻故人心"];
    
    NSMutableString *mutStr2 = [[NSMutableString alloc]initWithString:str];
    //拼接字串
    [mutStr1 appendString:mutStr2];
    //插入字元
    [mutStr1 insertString:@"," atIndex:7];
    //刪除
    [mutStr1 deleteCharactersInRange:NSMakeRange(8, 1)];
     
    NSLog(@"%@", mutStr1);

    //NSArray
    
    //建立陣列
    NSArray *array1 = [[NSArray alloc]initWithObjects:@"iphone", @"huawei", @"BlackBerry", nil];
    NSArray *array2 = [NSArray arrayWithObjects:@"Xiaomi", @"Vivo", @"Oppo", nil];
    
    //獲取陣列元素個數
    NSUInteger count = [array1 count];
    NSLog(@"%lu", count);
    //獲取指定下標的元素
    NSString *string = array2[1];
    NSLog(@"%@", string);

  //NSMutableArray
    
    //NSArray的子類,所以初始化方法可以使用父類的
    NSArray *array1 = [NSArray arrayWithObjects:@"Xiaomi", @"Vivo", @"Oppo", nil];
    
    //建立可變陣列
    NSMutableArray *mutArray1 = [[NSMutableArray alloc]initWithObjects:@"liuzhanyu", @"shenwenchao", @"houmeihua", nil];
    
    NSMutableArray *mutArray2 = [NSMutableArray arrayWithObjects:@"libaojian", nil];
    //可以根據不可變陣列建立可變陣列
    NSMutableArray *mutArray3 = [NSMutableArray arrayWithArray:array1];
    
    //增加
    [mutArray2 addObject:@"libin"];
    NSLog(@"%@", mutArray2);
    
    //刪除
    [mutArray1 removeObjectAtIndex:2];
    NSLog(@"%@", mutArray1);
    
    //修改
    [mutArray1 replaceObjectAtIndex:1 withObject:@"houmeihua"];
    NSLog(@"%@", mutArray1);
    
    //交換兩個元素的位置
    
    [mutArray1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
    NSLog(@"%@", mutArray1);

    //遍歷陣列
    
    NSArray *array = [NSArray arrayWithObjects:@"liyachuan", @"wangjing",@"zhangsan", nil];
    for (NSInteger i = 0; i < array.count; i++) {
        NSLog(@"%@", array[i]);
    }

    //值物件
    //將基本資料型別轉化成物件資料型別用於OC的資料處理
    //將整型轉化成物件型別
    int a = 10;
    NSNumber *aNumber = [NSNumber numberWithInt:a];
    //將物件轉化成基本資料型別
    int _a = [aNumber intValue];
    NSLog(@"%d", _a);
    
    double d = 3.141592;
    NSNumber *dNumber = [NSNumber numberWithDouble:d];
    double _d = [dNumber doubleValue];
    NSLog(@"%lf", _d);
    
    //變數和物件型別的互轉(僅支援系統提供的型別)
    NSRange range = {1,4};
    NSValue *rValue = [NSValue valueWithRange:range];
    NSRange _rang = [rValue rangeValue];