zoukankan      html  css  js  c++  java
  • 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]); }
  • 相关阅读:
    文字标签和注释标签
    HTML文档的组成和标签的规范
    HTML概述
    javaWeb
    web开发的三层架构
    ASCII码表
    JDK的新特性
    Editplus的运行JAVA的配置
    Eclipse的断点调试
    Eclipse工作空间的基本配置
  • 原文地址:https://www.cnblogs.com/wmx-rj/p/4723912.html
Copyright © 2011-2022 走看看