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]);
        }
时间: 2024-08-28 05:04:15

ios学习第三天杂记的相关文章

ios学习第三天杂记--Objective-c中的集合类

Objective-C中的集合类: 1. 数组 NSArray 在Objective-C中的集合类中主要包括不可变的数组--NSArray, 可变的数组--NSMutableArray, 不可变的字典--NSDictionary, 可变的字典--NSMutableArray, 不可变的集合--NSSet , 可变的集合--NSMutableSet 1>. 不可变的数组 NSArray 数组是有序对象的集合,用来存储对象的有序列表,在OC中数组中必须存的是对象,不能是基本数据类型,若想存入基本数据

IOS学习随笔三

IOS storyboard做界面跳转设计页面: self.dismissViewControllerAnimated(true, completion: nil ) ios8已经替换掉了老得方法定义  使用两个参数的dismissViewControllerAnimated NIB做界面设计: self.presentViewController(MyViewController(nibName: "MyViewController", bundle: nil), animated:

iOS学习第四天杂记--Objective-C中的内存管理

先说明下,原文为青玉伏案写的.我这只是学习而已. OC中的内存管理. OC中使用引用计数和垃圾回收来管理内存,在OC中为每个对象分配一个引用计数器,当对象刚刚被创建时其初始值为1,当有某段代码需要访问一个对象时,会将该对象的引用计数器加1(通过retain来实现):当访问一个对象结束时,会将该对象的引用计数器减1(通过release来实现):当计数器为0时,该对象占用的内存空间会被收回.在NSObject类有一个retainCount方法,调用该方法可获取当前对象的引用计数值. Tips:测试时

iOS 学习笔记 三 (2015.03.05)

// 当发现了我们所需要的characteristic,我们最想做的就是查看下这个characteristic的value是多少.也就是说,我们需要一个接收数据的操作. - (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error 在CoreBluetooth中,提供了两种方法:1. [peripheral

iOS学习笔记---oc语言第三天

继承.初始化方法 一.继承 继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量也继承过来了,只是不能访问) 面向对象提供了继承语法.能大大简化代码,把公共的方法和实例对象写在父类里.子类只需要写自己独有的实例变量和方法即可 继承既能保证类的完整,又能简化代码 继承特点 oc中只允许单继承 没有父类的类称为根类,oc中得根类是NSObject(祖宗) 继承的内容:所有的实例变量

iOS学习之UINavigationController详解与使用(三)ToolBar

1.显示Toolbar  在RootViewController.m的- (void)viewDidLoad方法中添加代码,这样Toobar就显示出来了. [cpp] view plaincopyprint? [self.navigationController  setToolbarHidden:NO animated:YES]; [self.navigationController setToolbarHidden:NO animated:YES]; 2.在ToolBar上添加UIBarBu

IOS阶段学习第三天笔记(运算符)

                                         IOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运算符优先级 括号()> * ,/ ,%  >+,- 4)%表示取余.取模  a%b 表示a除以b取余数 5)整数相除保留两位小数处理方法如: printf(“%.2f”,(float)14/9); 6)自增自减运算符

[转]iOS学习之UINavigationController详解与使用(三)ToolBar

转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController 接上篇,我们接着讲Navigation 的Toolbar. 1.显示Toolbar  在RootViewController.m的- (void)viewDidLoad方法中添加代码,这样Toobar就显示出来了. [cpp] view plaincopy

IOS学习之IOS沙盒(sandbox)机制和文件操作之NSFileManager(三)

我们看看NSFileManager如何使用.包括创建文件,目录,删除,遍历目录等. 1.在Documents里创建目录 创建一个叫test的目录,先找到Documents的目录, NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSLog(