OC 第四天

老牛浏览 306评论 0发表于

主要内容:

  1. 分类

  2. NSArray

  3. 创建字符串对象

  4. 网址解析—取主机名

objectivec
//
//  main.m
//  01- 分类
//

#import <Foundation/Foundation.h>
/*
 扩充类的功能:继承:要增加新类
             分类(类别):不用增加新类

 格式:@interface 类名(分类的名称)
 方法的声明
 @end

 @implementaion 类名(分类的名称)
 方法的实现
 @end

 注意事项:1.类别里面只能写方法  2.类别的名称写在类名后面的()里面

 作用:1.扩充系统类,增加类的功能。
      2.扩充现有类,增加现有类的功能,将复杂的功能进行分组,分别放入不同的类别里面,达到条理清晰,增加可读性,操作性。

 特点:类别里面的方法在使用的时候与本类中的方法同

 使用:1.创建分类
     2.在要使用分类方法的文件中引入分类的头文件
      3.用分类所在的类直接调用分类的方法即可

 匿名分类:
 格式:@interface 类名()
 成员变量的声明//私有的成员变量
 方法的声明//私有的
 @end

 匿名分类的实现放在原类的实现里面

 注意:1.类名后面的()里为空   2.匿名分类的里面可以声明成员变量

 使用:放在。m文件里面,实现文件的上面

 作用:扩充类的功能,声明一些私有的成员变量及方法
 */

//@interface NSString (fz)
//
//@end
//
//@implementation NSString (fz)
//
//
//@end

#import "NSString+fz.h"
#import "Person+chinese.h"
#import "Person+english.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSString *string = [NSString fzString:@"I Love You"];
        NSLog(@"%@",string);

        [Person studyEnglish];
        [Person studyChinese];

    }
    return 0;
}

//
//  main.m
//  01-NSArray
//

#import <Foundation/Foundation.h>
#import "Car.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {
    /*
     数组  : 与c的数组的区别

     定义:c的数组:存储的时相同的简单数据类型的有序集合
          oc的数组:存储的是相同或不同的对象类型的有序集合。

     区分: c的数组              oc的数组:
           c的数组是简单数据类型  oc的数组是对象
           简单数据类型          对象
           相同的               相同或不同
           都是有序的            有序的
     */

        char *cStr = "good";

        NSArray *array = [NSArray arrayWithObjects:@"good",@"33", nil];

        NSLog(@"cStr:%s,array:%@",cStr,array);

        //oc的数组 :分类:可变数组,不可变数组
        //注意:数组以nil结尾
        //先看不可变数组
        //创建
        //1.创建空的
        NSArray *array1 = [NSArray array];

        //2.通过对象方法创建
        NSArray *array2 = [[NSArray alloc]initWithObjects:@"11",@"22",@"33", nil];

        //通过其他的数组创建
        NSArray *array3 = [[NSArray alloc]initWithArray:array2];

        //3.通过类方法
        NSArray *array4 = [NSArray arrayWithArray:array2];

        NSArray *array5 = [NSArray arrayWithObjects:@"44",@"55",@"66", nil];

        NSArray *array6 = [NSArray arrayWithObject:@"yige"];

        //4.简便方法
        //[]里面是数组元素,
        NSArray *array7 = @[@"88",@"99"];

        //取值
        //取一个值
        //注意:不要越界
        NSString *string = [array5 objectAtIndex:1];

        NSString *string1 = array5[1];
        NSLog(@"string:%@,string1:%@",string,string1);

        //取多个值
        //<#(NSIndexSet *)#> 是一个索引集合类,可以进行索引的设置
        //包含数组的0,1两个索引值
        NSIndexSet *set = [[NSIndexSet alloc]initWithIndexesInRange:NSMakeRange(0, 2)];
        NSArray *subArray = [array5 objectsAtIndexes:set];
        NSLog(@"subArray:%@",subArray);

        //遍历
//        for (int i = 0; i< [array5 count]; i++) {
//            NSLog(@"%@",array5[i]);
//        }

        //快速遍历
        //原理:从 in 后面的数组中逐一的取出元素,赋给 in 前面的对象指针
        for (NSString *string in array5) {
            NSLog(@"%@",string);
        }

        //例子:宝马(红色)  凯迪拉克(白色)  法拉利(金色)
        Car *car1 = [[Car alloc]initWithColor:ColorWithRed andName:@"baoma"];

        Car *car2 = [[Car alloc]initWithColor:ColorWithWhite andName:@"kaidilake"];

        Car *car3 = [[Car alloc]initWithColor:ColorWithGolden andName:@"falali"];
        //@[]只能用于创建不可变数组
        NSArray *arrayCar = @[car1,car2,car3];

        //快速遍历
        for (Car *car in arrayCar) {
            NSLog(@"%@的颜色是:%i",car.name,car.color);
        }

    }
    return 0;
}

//
//  main.m
//  01-网址解析-取主机名
//
//  Created by zhaokai on 14-11-27.
//  Copyright (c) 2014年 zhaokai. All rights reserved.
//

#import <Foundation/Foundation.h>
/**
http://www.mobiletrain.org/index/abc/bcd/xxx/aaa?ab=xx
 */
int main(int argc, const char * argv[])
{

    @autoreleasepool {

        NSString *string = @"http://www.mobiletrain.org/index/abc/bcd/xxx/aaa?ab=xx";
        //取出//所在的范围
        NSRange range1 = [string rangeOfString:@"//"];

        //www.mobiletrain.org/index/abc/bcd/xxx/aaa?ab=xx
        NSString *subString1 = [string substringFromIndex:range1.location + 2];

        NSArray *array = [subString1 componentsSeparatedByString:@"/"];
        //www.mobiletrain.org
        NSString *subString2 = [array objectAtIndex:0];

        NSArray *array1 = [subString2 componentsSeparatedByString:@"."];
        //判断数组的元素个数,根据元素个数判断是否需要增加www.
        if ([array1 count] < 3) {
           subString2 = [@"www." stringByAppendingString:subString2];

        }

        NSLog(@"subString2:%@",subString2);

    }
    return 0;
}

//
//  main.m
//  02-取端口号
//

#import <Foundation/Foundation.h>
/**
 http://www.baidu.com:1234/s?wd=ios&rsv_sug4=82&inputT=802
 */
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSString *urlString = @"http://www.baidu.com:1234/s?wd=ios&rsv_sug4=82&inputT=802";
        //先判读
        BOOL isPre = [urlString hasPrefix:@"http:"];
        //保存最后的 字符串
        NSString *subString5 = [[NSString alloc]init];
        NSString *subString = [[NSString alloc]init];
        if (isPre) {
            NSArray *array = [urlString componentsSeparatedByString:@"//"];
            //www.baidu.com:1234/s?wd=ios&rsv_sug4=82&inputT=802
            subString = [array objectAtIndex:1];

        }else{
            subString = urlString;
        }

        NSRange range = [subString rangeOfString:@"/"];
        //www.baidu.com:1234
        NSString *subString2 = [subString substringToIndex:range.location];

        NSRange range1 = [subString2 rangeOfString:@":"];
        if (range1.location != NSNotFound) {
            subString5 = [subString2 substringFromIndex:range1.location+1];
        }else{
            subString5 = @"80";
        }

        NSLog(@"subString5:%@",subString5);
    }
    return 0;
}
点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛@ilaoniu
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于