码迷,mamicode.com
首页 > 移动开发 > 详细

ios学习第三天杂记

时间:2015-08-12 16:32:42      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

  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]); }

ios学习第三天杂记

标签:

原文地址:http://www.cnblogs.com/wmx-rj/p/4723912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!