黑马程序员技术交流社区

标题: OC中的.NSString [打印本页]

作者: xgjyjy    时间: 2016-3-17 12:28
标题: OC中的.NSString
1. NSString是1个数据类型,用来保存OC字符串的.

2. 实际上. NSString应该是1个类.
    既然是1个类.所以,完整的创建NSString对象的方式应该是这样的

    NSString *str0 = [NSString new];

    NSString *str1 = [NSString string];

    因为NSString是OC中最常用的1个对象.如果每次都这么创建字符串对象的话,就太累了.
    所以,苹果就提供了1种快捷的方式来创建1个NSString对象.

    @"jack"  这个本质上是1个NSString对象. 这是苹果提供的一种简写方式.

    @"rose"  是1个NSString对象.这是1个创建NSString对象的简写方法.

    NSString对象是来保存字符串的.

    1). 要存储字符串的完整的方式.
        a. 先创建NSString对象.
        b. 把字符串存储到这个对象中.

    2). 但是这么做太麻烦了. 所以,苹果提供了一个简写的方式,使用@符号.

        @"jack" ;  创建1个NSString对象,然后把字符串"jack"存储到这个对象中去.


    %p: 代表打印指针变量的值.只不过这个指针变量的值是1个地址.
    %@: 代表打印指针指向的对象.
   


    NSString *str = [NSString new];
    这种方式创建的字符串是1个空字符串  @""  不是nil




3. 既然NSString是1个类.那么就应该有很多很多的功能强大的方法.


    1). 常用的类方法.

        a. 将C语言的字符串转换为OC字符串对象.

           + (nullable instancetype)stringWithUTF8String:(const char *)nullTerminatedCString;

           nullable: 代表返回的对象有可能是nil


        b. 将变量拼接成1个新的OC字符串.

           + (instancetype)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);



    2). 常用的对象方法.

        a. 得到字符串的长度.

           - (NSUInteger)length;

            NSUInteger 这货其实就是unsigned long

        b. 得到指定下标的字符.
        
          - (unichar)characterAtIndex:(NSUInteger)index;

          在OC语言中 1个中文占据2个字节.
          返回值是unichar 占据2个字节.

          OC字符串中的字符 如果是英文字符占据1个字节 .如果是中文字符就占据2个字节.

          打印unichar字符使用%C  这是大C

        c. 判断两个字符串的内容是否相同.

           如果要判断两个字符串的内容是否相同.不要使用==来判断.会出问题.

        
           - (NSComparisonResult)compare:(NSString *)string;

           返回的是1个枚举值.

           NSOrderedAscending : 当前字符串比传入的字符串小.
           NSOrderedSame:  一样
           NSOrderedDescending 当前字符串比传入的字符串大

          如果枚举记不住,用整型就可以了.

        
        d. 只判断两个字符串是否相同.;

            - (BOOL)isEqualToString:(NSString *)aString;

                    




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2