A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 八寒地狱 中级黑马   /  2014-10-29 01:11  /  1049 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  一 结构体
1 NSRange           //位置   //长度
(location length)@"i love you"//you的位置
             NSRange r =  NSMakeRange(7,3);
                NSString *str = @"i love you";
            //查找某个字符串在str中的位置
     //如果找不到 lenght = 0;location =NSNotFound =-1
    NSRange range =[str rangeofString:@"you"];
                //输出%ld range.location,range.lenght

2 NSPoint/CGPoint
   CGPoint p = NSMakepoint(10,10);//(坐标)
   NSpoint p1 = CGPointMake(10,10);//常用
//将结果体转成字符串
   NSString *STR = NSStringFrompoint(p1);
3 NSSize\CGSize
  NSSize S = CGSizeMake(111,55);
  NSSize S1 = NSMakeSize(123.44);
  CGSize s2  = NSMakeSize(120,34);

4 NSRect\CGRect//代表一个矩形
  CGRect //位置和尺寸 NSsize位置 宽高
  CGRect = CGRectMake(0,0,100,50);
    CGRect r3 = {p1,p2};
   CGPointZero ==CGPointMake(0,0)//表示原点
5 结构体常用函数//使用函数的前提 添加 CoreGraphics这个框架

    (1)CGPointEqualpoint(CGPointMake(10,10),CGPointMake(12,12));//判断两个点是否相同
(2) CGRectContainsPoint( CGPointMake(5,2,6,4),CGPointMake(,4,5,));//范围内包括不包括这个点(4,5)

二 NSString 类
   一
    1 NSString   //不可变字符串
   (1) 字符串创建
    NSString *str = @"jimi";
     NSString *S1 = [[NSString alloc] initwithformat:@"jimi"];
     // c语言字符串 转OC字符串
     NSString *S2 =[[NSStringalloc]initwithUTF8String:"jack"];
    // OC 字符串 转C语言字符串
    const char *c = [S2 UTF8String];
  ( 2) 冲文件中读取字符串

    NSString *s3 = [[NSString alloc]ininwithContentsofFile:@"//路径"encoding:NSUTF8StringEncoding error];
    //URL 资源路径
     // 协议头 网络上fttp 万能的 // 本地资源 File// 只支持读取
    (3)//把字符串写到文件里面

    2  NSMutablestring  //可变字符串
    //继承 自NSString
     NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"];
     拼接内容到s1的后面
[       s1 appendString:@" 11 12"];
三 NSArray
1 NSArray//集合类
//集合类  不可变数组 OC数组 不能存放基本数据类型 只能存放OC对象
//OC数组不能存放空值
1.NSArray的创建

NSArray *array2 = [NSArray arrayWithObject:@"jack"];

// nil是数组元素结束的标记
NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];
// [array2 count];

//NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];

// 快速创建一个NSArray对象
NSArray *array4 = @[@"jack", @"rose", @"4324324"]

2.NSArray的元素个数

NSLog(@"%ld", array3.count);



3.NSArray中元素的访问

NSLog(@"%@", [array3 objectAtIndex:1]);

//array3[1];
NSLog(@"%@", array3[0]);
}


  数组的遍历方法

Person *p = [[Person alloc] init];

NSArray *array = @[p, @"rose", @"jack"];

   (1)for (int i = 0; i<array.count; i++)
    {
        NSLog(@"%@", array[i]);
    }
        
    (2)  id obj代表着数组中的每一个元素
        int i = 0;
        for (id obj in array)
        {
            // 找出obj元素在数组中的位置
            NSUInteger i = [array indexOfObject:obj];
            
            NSLog(@"%ld - %@", i, obj);
            i++;
            
            if (i==1)
            {
                break;
            }
        }
(3)
     array enumerateObjectsUsingBlock:

    // 每遍历到一个元素,就会调用一次block
    // 并且当前元素和索引位置当做参数传给block
    ^(id obj, NSUInteger idx, BOOL *stop)
     {
    NSLog(@"%ld - %@", idx, obj);
   
   
    if (idx == 0)
     {
        // 停止遍历
        *stop = YES;
      }
   
   }];


   2 NSMutableArray
//可变数组
        /* 错误写法
         NSMutableArray *array = @[@"jack", @"rose"];
         
         [array addObject:@"jim"];
         */
        SMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];//创建可变数组
        // 添加元素
        [array addObject:[[Person alloc] init]];
        
        [array addObject:@"jack"];
        删除指定的对象
        // [array removeObject:@"jack"];

  四   NSNumber
//继承自NSValue
    //基本数据类型转成对象

NSNumber *num = [NSNumber numberWithInt:10];
//把10 传进字典里面

NSDictionary *dict =  @{
    @"name" : @"jack",
   
   
    @"age" : num
   
};
@20  将 20包装成一个NSNumber对像
将各种基本数据类型包装成NSNumber对象
@10.5;
@YES;
@'A'; // NSNumber对象

@"A"; // NSString对象

// 结构体--->OC对象

CGPoint p = CGPointMake(10, 10);
// 将结构体转为Value对象
NSValue *value = [NSValue valueWithPoint:p];

// 将value转为对应的结构体
// [value pointValue];

NSArray *array = @[value ];


五   NSSet
//没有顺序
NSSet和NSArray的对比
1> 共同点
* 都是集合,都能存放多个OC对象
* 只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)
* 本身都不可变,都有一个可变的子类

2> 不同点
* NSArray有顺序,NSSet没有顺序

NSMutableSet *s = [NSMutableSet set];

// 添加元素
[s addObject:@"hack"];

// 删除元素
// [s removeObject:<#(id)#>];
  NSDictionary //集合类
//字典
字典:

key ----> value
索引 ----> 文字内容

里面存储的东西都是键值对

创建方式

(1)NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];

(2) NSArray *keys = @[@"name", @"address"];
NSArray *objects = @[@"jack", @"北京"];

/ NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
  返回的是键值对的个数

   添加键值对


// 添加键值对
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];

     [dict setObject:@"jack" forKey:@"name"];

移除键值对
dict removeObjectForKey:<#(id)#>];


NSString *str = dict[@"name"]

字典不允许有相同的key,但允许有相同的value(Object)
字典的无序的



六   NSDate
/ 创建一个时间对象
NSDate *date = [NSDate date];
// 打印出的时候是0时区的时间(北京-东8区)
NSLog(@"%@", date)
NSDate *date = [NSDate date];


// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

1 个回复

倒序浏览
顶一个赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马