OC基础第四讲): NSString , NSArray , NSNumber 便利构造器

//

//  main.m

//  LissionFour

//

//  Created by scjy on 15/11/4.

//  Copyright (c) 2015第四周. All rights reserved.

//


#import <Foundation/Foundation.h>


typedef  struct student{

    int height;

    int weight;

    

}Student;


int main(int argc,constchar * argv[]) {

    @autoreleasepool {

        // insert code here...

        NSLog(@"Hello, World!");

/************     OC第四讲

        NSString NSArray NSNumber

          (这三个都是OC里边的类)

       *************************/

        

        /*1,

         API(Application Programming Interface)

        中文意思:应用程序编程接口

         

        苹果每次升级iOS系统都会添加或更新大量的API接口,并提供相应的参考文档,

        学会使用苹果的帮助文档是开发者必备的一项技能

         (快捷键:系统键+上档键+0

         */

        

        /*

         苹果API文档结构:Inherits from  : 继承自哪个类

         Conforms to   :                  遵循哪个协议

         Framework     :                  属于哪个框架里的类

         Availabilty   :                  从什么时候可以使用

         Declared in   :                  声明在什么头文件里

         Related documents    :           相关文档

         Sample code    :                 示例代码

         

         

         //如何打开API文档:xcode -Window/help - Documents and API Reference(参考)

         

         快速打开API文档:将鼠标停在类名或方法名上边,按option(或Alt)键 +鼠标左键,点击class Reference进入API文档

        或者可以用command +鼠标左键,进入这个类的头文件,查看接口部分实例变量以及方法的定义。

         */

        

      //  字符串:

        /*

         C语言中字符串由char(ASCII)字符组成

        OC的字符串是由unicharUnicode)字符组成

        NSString是不可变字符串,创建之后不能改变长度和内容

        NSMutableString是可变字符串,创建之后可以修改内容

        */

        //1,实例方法初始化 创建字符串

//        NSString *str = @"南柯一梦";

//        NSLog(@"%@",str);

//        NSString *str0 = @"江户川柯南";

//        NSLog(@"%@",str0);

//        NSString *str = [[NSString alloc] initWithString:@"南柯一梦"];

//        NSLog(@"%@",str);{这些注销的是原始方法}

        

        //2,便利构造器方法 创建字符串

//        NSString *str1 =  @"我要饿了";

//        NSLog(@"%@",str1);

        

//        NSString *str1 =  [NSString stringWithString:@"我饿了"];

//        NSLog(@"%@",str1);{这些注销的是原始方法}

        

        //求字符串长度

//        NSUInteger length = str1.length;

//        NSLog(@"length = %lu",length);

//       

        //拼接字符串

//        NSString *str2 = [str stringByAppendingString:str1];

//        NSLog(@"str2 = %@",str2);

//        

//        NSString *str3 = [str stringByAppendingFormat:@"%@%@%@",str,str1,str2];

//         NSLog(@"str3 = %@",str3);

//        

        //替换字符串

//        NSString *str4 = [str2 stringByReplacingOccurrencesOfString: str3 withString: str1];

//        NSLog(@"str4 = %@",str4);

//

//        NSString *str5 = [str1 stringByReplacingCharactersInRange:NSMakeRange(2, 2)withString:@"女神"];

//        NSLog(@"str5 = %@",str5);

//        

//        //相等

//        NSString *str6 = @"南柯一梦";

//        if ([str isEqualToString:str6]) {

//            NSLog(@"相等");

//        }

//        NSString *str6 = [[ NSString alloc]initWithString:@"南柯一梦"];

//        if ([str isEqualToString:str6]) {

//            NSLog(@"相等");

//        }

       //        NSString *str6=@"stayhungry";

//        NSString *str7=@"stayfoolish";

//        NSString *str8=@"qiaobusi";

//        

//        if ([str6 isEqualToString:str7]==true) {

//            NSLog(@"相等");

//            

//        }else NSLog(@"不相等");

//        

//        if ([str6 isEqualToString:str8]==false) {

//            NSLog(@"不相等");

//            

//        }

        

       //字符串比较

//        NSComparisonResult result = [str compare:str1];

//        if (result == NSOrderedSame) {

//            NSLog(@"str == str1");

//        }else if (result == NSOrderedAscending){

//            NSLog(@"str > str1");

//        }else if (result == NSOrderedDescending){

//            NSLog(@"str < str1");}


        

        

            //  - (BOOL)hasSuffix:(NSString *)aString

        //  - (BOOL) hasSuffix:(NSString *)png;//检查字符串是否以png结尾

        //判断图片是否以png结尾,是的话替换为jpg

//        NSString *pictureName = @"tiger.png";

//        NSString *newPic = [NSString string];

//        if ([pictureName hasSuffix:@"png"]) {

//            newPic = [pictureName stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"];

//            NSLog(@"newPic = %@",newPic);

//        }

        

        

        //        NSMutableString

//    NSMutableString *mstr = [[NSMutableString alloc]

//                             initWithString:@"此去经年,应是良辰好景虚设,便中有千种风情,更与何人说."];

//        

//        

//         //拼接字符串

//        

//        [mstr appendFormat:@"当时只道是寻常"];

//        NSLog(@"mstr = %@",mstr);

//        

//             //插入字符串

//        

//        [mstr insertString:@"花自飘零水自流" atIndex:4];

//         NSLog(@"mstr = %@",mstr);

//        

//        //删除字符串

//        [mstr deleteCharactersInRange:NSMakeRange(2, 7)];

//         NSLog(@"mstr = %@",mstr);

//        

        

       //可变和不可变:不可变字符串的修改操作,本质就是得到一个新的字符串。不可变字符串的修改方法以string开头,有返回值。可变字符串的修改方法没有返回值,修改原字符串

        

        //判断图片是否以png结尾,是的话替换为jpg,用 NSMutableString

//        NSMutableString *pictureName = @"tiger.png";

//        if ([pictureName hasSuffix:@"png"]) {

//            pictureName = [pictureName stringByReplacingOccurrencesOfString: @"png"withString: @"jpg"];

//            NSLog(@"pictureName = %@",pictureName);

//        }


        

        

        

        //数组

        /*

         数组--有序集合

         iOS中存放数据的容器类都成为集合

        数组是有序集合,只能存放对象

        数组有下标(index)的概念,靠index来索引元素,下标从零开始

         数组分不可变数组(NSArray)和可变数组(NSMutableArray*/

        

        //初始化方法

//        NSArray *array = [[NSArray alloc]initWithObjects:@"阿瑟·柯南·道尔",@"江户川柯南",@"福尔摩斯", nil];

//        //便利构造器

//        NSArray *array1 = [NSArray arrayWithObjects:@"纳兹",@"张鹏飞",@"张混蛋", nil];

//       

//        

//        //获取元素个数 count

//        NSLog(@"array元素个数%lu",array.count);

//        NSLog(@"array1元素个数%lu",array1.count);

//        

//        

//        //根据index获取对象  objectAtIndex

//        NSLog(@"array[0] = %@",[array objectAtIndex:0]);

        

       //        for (NSString *string in array) {

//            NSLog(@"array content is %@",string);

//        }

//        

        

        //可变数组(NSMutableArray

        /*

         

         */

        NSMutableArray *marray = [[NSMutableArrayalloc]initWithObjects:@"福尔摩斯",@"张鹏飞",@"张混蛋",@"柯南",@"江户川乱步",nil];

//        //添加元素

//        [marray addObject:@"狄仁杰"];

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

//            NSLog(@"marray[%d] = %@",i,marray[i]);

//        }

//        

//        //插入元素

//        [marray insertObject:@"宋慈" atIndex:2];

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

//            NSLog(@"marray[%d] = %@",i,marray[i]);

//        }

        

        //删除元素

        [marray removeObjectAtIndex:3];

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

            NSLog(@"marray[%d] = %@",i,marray[i]);

        }

//

//        //替换元素

//        [marray replaceObjectAtIndex:2 withObject:@"元芳"];

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

//            NSLog(@"marray[%d] = %@",i,marray[i]);

//        }

        

//        //交换指定位置的两个元素

//        [marray exchangeObjectAtIndex:2 withObjectAtIndex:1];

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

//            NSLog(@"marray[%d] = %@",i,marray[i]);

//        }

//        

        

        //如何存储int,floatNSRange等的基本数据类型的值

        /*

         数组只能存放对象

        需要存储整形或者结构体时怎么做呢?

        存储:把整形或结构体转换为对象,将对象存入数组

        读取:先读取对象,再将对象还原为整形或结构体*/

        

        /*

        NSNumber

        数值对象

        完成数组标量和对象类型的转换

         基本类型(intfloat等)转化为NSNumber

         NSNumber转化为基本数据类型(intfloat等)

         

         */

    /*

     NSVale

    完成标量和对象类型的转换

     结构体,指针等转换为 NSVale

      NSVale转化为结构体,指针等 

     */

     

//        //int类型转换为NSNumber对象类型存入数组

//        NSNumber *objint=[NSNumber numberWithInt:132];

//

        //double类型转换为NSNumber对象类型存入数组

//        NSNumber *objdouble=[NSNumber numberWithDouble:3.1415];

//

        //char类型转换为NSNumber对象类型存入数组

//        NSString *objchar=[NSNumber numberWithChar:'c'];

//        

//        

//        NSArray *array4=[NSArray arrayWithObjects:objint, objdouble,objchar,nil];

//        

//        //把数组元素取出来,用XXXValue再转换为原来类型

//        int a=[[array4 objectAtIndex:0]intValue];

//        NSLog(@"%d",a);

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

//            NSLog(@"%@",array4[i]);

//        }

//        //自定的结构体Student

//        Student stu={174,120};

//        NSValue *stuvalue=[NSValue valueWithBytes:&stu objCType:@encode(Student)];

//        

//        

//        NSValue *rangValue = [NSValue valueWithRange:NSMakeRange(3, 5)];

//        NSValue *sizeValue = [NSValue valueWithRange:NSMakeRange(10, 30)];

//        NSArray *array5 = [NSArray arrayWithObjects:rangValue,sizeValue,nil];

//        NSRange rang = [[array5 objectAtIndex:0]rangeValue];

//        CGSize size = [[array4 objectAtIndex:1]sizeValue];

//        NSLog(@"rang.loc = %lu",rang.location);

//        NSLog(@"rang.len = %lu",rang.length);

//        

//        Student stu1;

//        [[array5 objectAtIndex:2]getValue:&stu1];

//        NSLog(@"%d",stu1.height);

//        NSLog(@"%d",stu1.weight);

//        

//        

        

    

    

    

    }

    return 0;

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值