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];