首页 > 技术文章 > OC—类的设计和NSString

zhendiao 2015-07-31 20:43 原文

经过前一段时间C语言 的学习,从这周开始正式步入OC的学习

OC中类的定义:同一类事物的抽象,对象则与之相反,是抽象的类的具体化。

OC中定义属性字段时通常在元素前面加上_如

  NSString * _name;
    int _age;
    BOOL _sex;

未经声明的变量一般为受保护的变量,无法被外界访问,在OC中存在如下三种修饰符

     默认为被保护的(protected: 意味着只能够本类或者子类可以访问)

     私有的(private: 只能够本类访问)

     共有的(public: 所有的类都能够访问)

在某一修饰符后面定义的变量即具有对应的属性。

OC中的构造方法一般以init开头,一般返回id类型(id类型是万能的对象类型),一般初始化的时候命名初始化方法(构造方法)为

-(id)initWithName:(NSString *)name andAge:(int)age

实现的时候一般为

-(id)initWithName:(NSString *)name andAge:(int)age{
    self = [super init];
    if (self) {
        self.name = name;
        self.age = age;
    }
    return self;
}

OC中同样和java和C#一样有与元素对应的get和set方法,但是在OC中我们使用成员变量名(不要下划线)为方法命名,这对我们调用方法提供了一种简便的理解方式。例子如下:

-(void)setName:(NSString *)name;
-(NSString *)name;
-(void)setAge:(int)age;
-(int)age;

OC中将类的方法分为类方法和对象方法,类方法在定义时以+开头,对象方法以-开头。对象方法必须在用声明的对象使用,类方法可以由类直接使用

 

 

NSString类:

NSString 类类似于C语言中的char *类型。但是它变得更灵活了

NSString声明和初始化:

        NSString * str = @"123456989834348";

学习NSString主要是对其几个方法的灵活使用

例子如下

1.返回字符串的长度
    NSUInteger len = [str length];
2.返回单个字符
    unichar c = [str characterAtIndex:3];
3.比较两个字符串的大小关系
    BOOL ret = [str1 isEqualToString:str2];
    NSComparisonResult ret2 = [str1 compare:str2];
4.查找子串的位置和范围
    NSRange range = [str rangeOfString:@"粉刷"];
5.子串的提取
    NSString * subStr1 = [str substringToIndex:5];
    NSString * subStr2 = [str substringFromIndex:5];
    NSString * subStr3 = [str substringWithRange:range];

从NSString延伸到可变的字符串NSMutableString,NSMutableString 继承自 NSString,它拥有NSString的所有方法,并且增加了自己特有的方法。如下

1.重置字符串内容
    [str setString:@"0123456789"];
2.增 append  insert
    [str appendString:@"9876543210"];
    [str appendFormat:@"%d %c %.2f", 34, 'T', 2.34];
    [str insertString:@"ABC" atIndex:3];
3.删 delete
    [str deleteCharactersInRange:range];
4.改 replace
    [str replaceCharactersInRange:range withString:@"XXXXXXXXXXXXXXX"];
5.查 rangeOfString:

推荐阅读