Object-C 基础语法学习

1、字符串简单总结

    NSString *str1 = @"hello"; 

    NSString *str2 = @"helloWorld"; 

    NSString *str3 = @"123"; 

    BOOL flag = 0; 

    //比较两个字符串的内容是否相同 

    flag = [str1 isEqualToString:str2]; 

    NSLog(@"两个字符串的内容是否相同:%i", flag); 

    //比较两个字符串的地址是否相同 

    flag = (str1 == str2); 

    NSLog(@"str1地址是%p", str1); 

    NSLog(@"str2地址是%p", str2); 

    NSLog(@"两个字符串的地址是否相同:%i", flag); 

    //比较两个字符串的大小 

    long newFlag = [str1 compare:str2]; 

    NSLog(@"%ld", [str1 length]);//求字符串的长度 

    NSLog(@"%ld", [str2 length]); 

    NSLog(@"两个字符串的大小是否相同:%ld", newFlag); 

    NSLog(@"%c",[str1 characterAtIndex:1]);//截取第几个字符 

    int a = [str3 intValue];//将字符串转化为整形数据 

    NSLog(@"%i", a); 

    NSRange range = [str2 rangeOfString:@"oW"];//查找子串【找不到返回NSNotFound,找到返回位置和长度】 

    if (range.location != NSNotFound) { 

        NSLog(@"%ld %ld", range.location, range.length); 

    } 

    BOOL flag1 = [str2 hasPrefix:@"he"];//判断字符串是否以指定字符串开头 

    BOOL flag2 = [str2 hasSuffix:@"uu"];//判断字符串是否以指定字符串结尾 

    NSLog(@"字符串是否以he开头:%i", flag1); 

    NSLog(@"字符串是否以uu结尾:%i", flag2); 

    //拼接字符串

    // 1  NSString 每次新建一个对象,效率低

    NSString *string1 = [str1 stringByAppendingString:str2]; 

    NSLog(@"%@", string1); 

NSString *content = [NSString stringWithFormat:@"productId = %@,isSuccess = %i",productId,isSuccess]; 

    // 2 NSMutableString 同一个对象,效率高

      NSMutableString *content = [NSMutableString stringWithFormat:@"productId = %@,isSuccess = %i",productId,isSuccess]; 

2数组简单总结

    //NSArray只能存放任意的OC对象,不能存储非OC对象 

    //NSArray是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素 

    //初始化数组 

    NSArray *arr1 = [NSArray arrayWithObjects:@"hello", @"world", @"good", @"morning", nil nil]; 

    NSArray *arr2 = @[@"good", @"morning", @"hello", @"world"]; 

    NSLog(@"%@", [arr1 objectAtIndex:0]);//取出数组的某个元素 

    NSLog(@"%@", arr2[0]); 

    //遍历NASrray数组 

    for (NSString *obj in arr1) { 

        NSLog(@"obj = %@", obj); 

    } 

    //对数组进行排序【元素不能是自定义对象】 

    NSArray *arr3 = [NSArray arrayWithObjects:@(1), @(34), @(56), @(13), @(7), nil nil]; 

    NSArray *newArr2 = [arr3 sortedArrayUsingSelector:@selector(compare:)]; 

    NSLog(@"排序之后的数组是:%@", newArr2);//输出的格式带有小括号 

    //将数组写入文件中 

    BOOL isSuccess = [arr2 writeToFile:@"/Users/coolzhen/Desktop/arr2.plist" atomically:YES]; 

    NSLog(@"isSuccess = %i", isSuccess); 

    //从文件中读取一个数组 

    NSArray *arr4 = [NSArray arrayWithContentsOfFile:@"/Users/coolzhen/Desktop/arr2.plist"]; 

    NSLog(@"%@", arr4); 

    //*****************************可变数组*****************************// 

    //不能通过@[]来创建一个可变数组,因为@[]创建出来的是不可变数组 

    NSMutableArray *arr11 = [[NSMutableArray alloc] init]; 

    NSMutableArray *arr12 = [NSMutableArray array]; 

    //给可变数组增加内容 

    [arr11 addObject:@"hello"]; 

    [arr12 addObjectsFromArray:@[@"hello", @"world", @"good", @"afternoon"]]; 

    NSLog(@"%@", arr11); 

    NSLog(@"%@", arr12); 

3 字典的简单总结

    //创建字典【字典里一个Key对应一个value,存储的都是键值对】 

    NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"dog" forKey:@"name"]; 

    NSDictionary *dict2 = [NSDictionary dictionaryWithObjects:@[@"cat",@"21"] forKeys:@[@"name", @"age"]]; 

    NSDictionary *dict3 = @{@"name":@"fish", @"age":@"32"};//简写 

    NSString *name = [dict1 objectForKey:@"name"];//取出字典的某个值 

    NSLog(@"dict1的名字是%@",name); 

    NSLog(@"dict2的名字是%@, 年龄是%@", [dict2 objectForKey:@"name"], [dict2 objectForKey:@"age"]); 

    NSLog(@"dict3的名字是%@, 年龄是%@", dict3[@"name"], dict3[@"age"]); 

    NSLog(@"dict3的个数:%lu", [dict3 count]);//获取字典的个数 

    //遍历字典第一种方法 

    for (int i = 0; i < dict3.count; i++) { 

        NSArray *keys = [dict3 allKeys]; 

        NSString *key = keys[i]; 

        NSString *value = dict3[key]; 

        NSLog(@"key = %@, value = %@", key, value); 

    } 

    //遍历字典第二种方法 

    for (NSString *key in dict2) { 

        NSString *value = dict2[key]; 

        NSLog(@"key = %@, value = %@", key, value); 

    } 

    //将字典数据写入文件之中 

    BOOL isSuccess = [dict2 writeToFile:@"/Users/coolzhen/Desktop/dict2.plist" atomically:YES]; 

    NSLog(@"isSuccess = %i", isSuccess); 

    //从文件中读取字典数据 

    NSDictionary *newDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/coolzhen/Desktop/dict2.plist"]; 

    NSLog(@"%@", newDict);//字典中保存的数据是无序的,和数组不一样 

NSMutableDictionary========

//创建可改变的词典  它是动态的 

//需要我们初始化一个空间大小,用dictionaryWithCapacity 

NSMutableDictionary * mutableDictionary = [NSMutableDictionary dictionaryWithCapacity:5]; 

//这里我们给的空间大小是5,当添加的数据超过的时候,它的空间大小会自动扩大 

//添加数据,注意:id key  是成对出现的 

[mutableDictionary setObject:@"good lucky" forKey:@"why"]; 

[mutableDictionary setObject:@"bye bye" forKey:@"how"]; 

输出类型

Char : %s

NSString : %@

long : %ld

bool : %i

类型转换

1、 Int 转NSNumber

  int iValue;

  NSNumber *number = [NSNumber numberWithInt:iValue];

2、 NSNumber 转Int

    int myInt = [number intValue];

3、NSString转int

    NSString *stringInt = @"120";

  int ivalue = [stringInt intValue];

4、int转NSString

    NSString *string = [NSString stringWithFormat:@"%d",ivalue];

5、NSString转NSNumber

    NSString *stringInt = @"120";

    NSNumber *shareType = @([stringInt integerValue]);

6、NSNumber转NSString

    NSNumber* number = @1;

    NSString* str = [number stringValue];

原生Json

参考资料:http://blog.sina.com.cn/s/blog_7b9d64af0101ce92.html

// 将字典或者数组转化为JSON串 NSData

- (NSData *)toJSONData:(id)theData{

    NSError *error = nil;

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData options:NSJSONWritingPrettyPrinted error:&error];

    if ([jsonData length] > 0 && error == nil){

        return jsonData;

    }else{

        return nil;

    }

}

// 将字典或者数组转化为JSON string

- (NSString *)toJSONString:(id)theData{

    NSData *data = [self toJSONData: theData];

    NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

    return jsonString;

}

---------------------

作者:Leovany

来源:CSDN

原文:https://blog.csdn.net/leovnay/article/details/79948012?utm_source=copy

版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容