iOS学习第三天杂记

  ios学习第三天杂谈,从一个接口文件和实现文件(student.h与student.m)中学习到的。相关文章请参考: OC精选字符串处理方法

  1. 代码规范:

  1.1: 类名的首字母要大写

  1.2: 方法的命名用驼峰命名法

  2. 干货

  2.1: 要在一个类中实例化类,需要先引入类的接口文件如***.h。

  2.2: OC中类的实例化方式是 Student  *student =  [[Student alloc] init], 可以理解为Student类在NSObject类中继承了alloc方法, alloc这个方法是用来实例化对象的, ​init 是默认的构造方法

  2.3: 在OC中对象调用其中的方法是通过[]来实现的,[对象名   方法名];

    ​    ​   定义对象的语法:

    ​    ​    ​    ​类名    ​*对象名 = [  [ 类名 alloc ] init ];   或者

    ​    ​    ​    ​类名    ​*对象名 = [ 类名  new];

    ​    ​  给对象的成员变量赋值和调用对象的方法如下:

    ​    ​    ​    ​对象名->成员变量名 = 具体值;

    ​    ​    ​    ​[ 对象名 方法名];

  2.4: 类方法和对象方法

    ​    ​  上面也提到了,减号开头的方法为对象方法,需要实例化类后通过对象来进行调用。对象方法允许调用对象方法和对象变量​加号开头的方法为类方法,通过类就可以直接调用的方法。

    ​    ​  下面是一些方法调用的一些规则:

    ​    ​    ​    ​1.类方法可以调用类方法;

    ​    ​    ​    ​2.类方法不可以调用对象方法;

    ​    ​    ​    ​3.类方法不可以使用对象变量,类方法可以使用self(self相当于java中的this);    ​    ​    ​

    ​    ​    ​    ​4.可以通过类来调用类方法,但对象不可以调用类方法

  2.5: property的可读写性:

     property的可读写性决定属性是否有setter方法

    ​    ​    ​(1)readwrite : 指定属性是可读写的,这是默认值,因此可以省略

    ​    ​    ​    ​    ​  @property (readwrite) NSString *name;

    ​    ​    ​  (2) readonly : 指明属性是只读的。系统不会setter方法,但有getter方法

    ​    ​    ​    ​    ​  @property (readonly) NSString *name;

  2.6: 字符串处理方法

    1> 字符串的创建: NSString *str = [NSString stringWithString:@"hello"];

                                      NSString *str = @"hello";

    2> 字符串长度: NSUInteger len = [str length];

    3> 字符串的比较: == 比较字符串的指针   isEqualToString 比较字符串的内容,返回值是BOOL类型

       retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。     

         copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制, 引用计数每次加一。始终返回一个不可变对象。  

           mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。

    4> 字符串的比较函数compare

      NSString下面的compare函数的返回值是一个枚举类型NSComparisonResult;   NSOrderedAscending=-1, NSOrderedSame=0,NSOrderedDescending = 1 ; ​

NSString *strCompare1 = @"abcde";
NSString *strCompare2 = @"bcdef";
NSComparisonResult result = [strCompare1 compare:strCompare2];

    5> 字符串的拼接函数

      stringByAppendingString : (NSString *) aString;

       stringByAppendingFormat : (NSString *) format ...;

    6> 字符串的查找

      ​-(BOOL) hasPrefix : (NSString *) string: 判断一个字符串是否是以string开头;

      ​-(BOOL) hasSuffix : (NSString *) string: 判断一个字符串是否是以string结尾;

      ​-(NSRange) rangeOfString:(NSString *) string; 模式匹配字符串,返回类型是结构体NSRange, 结构体 NSRange里有两个值都是整型的,location代表子字符串在​原有字符串中的位置,length代表长度。    

    NSString *parent = @"123456789";
    NSString *pre = @"123";
    NSString *suf = @"789";
    NSString *mid = @"456";
    if([parent hasPrefix:pre] == YES){
    
        NSLog(@"Succeed");
    }
    if([parent hasSuffix:suf] == YES){
    
        NSLog(@"Succeed");
    }
    NSRange range = [parent rangeOfString: mid];
    NSLog(@"location = %lu, length = %lu", (unsigned long)range.location,(unsigned long)range.length);

    7> 字符串的截取

    -(NSString *) substringFromIndex : (NSUInteger) from 获取从字符串的开头到字符串结尾的字符串内容,不包含from位置的字符。

    ​-(NSString *) substringToIndex : (NSUInterger) to  获取从字符串开头到字符串的to位置的字符串内容,包含to位置的字符;

    -(NSString *) substringWithRange:(NSRange) range 根据NSRange这个范围来获取字符串;

        NSString *parent = @"123456789";
        NSString *toEnd = [parent substringFromIndex: 6];
        NSLog(@"%@", toEnd);
        NSString *fromBegin = [parent substringToIndex: 3];
        NSLog(@"%@", fromBegin);
        NSRange range = {3,3};
        NSString *rangeString = [parent substringWithRange:range];
        NSLog(@"%@", rangeString);

    8> 字符串的类型转换函数

      -(double) doubleValue; 把字符串的内容转换为double类型

      -(float) floatValue; 把相应的字符串转换为float类型

      -(int) intValue;把相应的字符串转换为int类型

    9> 字符串大小写转换函数

      -(NSString *)uppercaseString : 将字符全改成大写的;

      -(NSString *)lowercaseString : 将字符全改成小写的;

      -(NSString *)capitalizedString : 将首字母进行大写;

    10> 字符串替换函数

       -(NSString *)stringByReplacingOccurrencesOfString: (NSString *) target  withString : (NSString *) replacement; 把字符串target转换为replacement;

       ​-(NSString *)stringByReplacingCharactersInRange : (NSRange) range withString : (NSString *) replacement; 把指定范围内的字符串进行替换;

      -(NSArray *) componentsSeparatedByString:(NSString *) separator:以字符串中的某个字符进行分割,返回数组对象;

        NSString *str = @"abc,def,g";
     //将字符串中特定的字符串换成指定的字符串
NSString
*after = [str stringByReplacingOccurrencesOfString:@"a" withString:@"zzzzzzz"]; NSLog(@"%@", after);
//将range范围内的字符串替换为相应的字符串 NSRange range
= {0,6}; NSString *rangeString = [str stringByReplacingCharactersInRange:range withString:@"a"]; NSLog(@"%@", rangeString);
//分割字符串,把分割完的字符串存入数组中 NSArray
*split = [str componentsSeparatedByString:@","]; for(int i = 0; i < [split count]; i++){ NSLog(@"%@", [split objectAtIndex:i]); }
原文地址:https://www.cnblogs.com/wmx-rj/p/4723912.html