黑马程序员————Objective C——Foundation1

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一、NSRange

     1.NSRange定义

  

      typedef struct_NSRange 
      {
          NSUInteger location;
          NSUInteger length;
       } NSRange;


        location是在行列中的起始位置(基于零点)而length是行列中的条目个数。NSUInteger只是单纯的一个无符号的值,它支持32位和64位系统。

     2.一般操作

    // @"i love oc"  // love的范围
    
    //NSRange r1 = {2, 4}; // 不用
    //NSRange r2 = {.location = 2, .length = 4};// 不用
    //NSRange r3 = NSMakeRange(2, 4); // 掌握
      NSString *str = @"i love oc";
    
    // 查找某个字符串在str中的范围
    // 如果找不到,length=0,location=NSNotFound==-1
    NSRange range = [str rangeOfString:@"java"];
    NSLog(@"loc = %ld, length=%ld", range.location, range.length);

      3.NSPiont和CGPiont

 struct CGPoint {
          CGFloat x;
          CGFloat y;
        };
      typedef struct CGPoint CGPoint;

   

CGPoint p1 = NSMakePoint(10, 10);

NSPoint p2 = CGPointMake(20, 20);// 最常用

      4.NSSize和CGSize

    

struct CGSize {

CGFloat width;
CGFloat height;

};


NSSize s2 = NSMakeSize(100, 50);
CGSize s3 = NSMakeSize(200, 60);

    
      5.NSRect和CGRect

struct CGRect {
    CGPoint origin;
    CGSize size;
};
typedef struct CGRect CGRect;
    CGRect r1 = CGRectMake(0, 0, 100, 50);
    
    CGRect r2 = { {0, 0}, {100, 90}};
    
    CGRect r3 = {p1, s2};


二、NSString和NSMutableString

      NSString : 不可变字符串
        1.创建
        1)类方法:+(id)stringWithString:字符串。
         

   NSString *s2 = [[NSString alloc] initWithString:@"jack"];
        2)类方法:+(id)stringWithFormat:字符串、格式控制符。

            NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10]; 
       3)最直接的方法:NSString *str = @"i am a getal man";

        4 ) 从文件中得到NSString

           

NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];

         5)C字符串 --> OC字符串
            NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];
             OC字符串 --> C字符串
             const char *cs = [s4 UTF8String];
         6)从URL中得到NSString

         

  NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"];
           NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

        2.求字符串长度:length方法。
           [str length]
     3.字符串比较方法。
        1)全方位比较、比较字符串是否相同。
               -(BOOL) isEqualToString:
                如:[字符串对象1  isEqualToString:字符串对象2];
        2)-(枚举类型的值)compare:字符串。
            注意:此方法比较的是:字符串中每个字母的ASCII码值。
                    该方法的返回值类型是:三个枚举类型的值,切记:不事BOOL值。
                    返回的三个枚举值为:
                                                    NSOrderedAscending:主调小于被调。
                                                    NSOrderedSame:相同。
                                                    NSOrderedDescending:主调大于被调。
            如:[字符串1  compare:字符串2];注意:不能直接用if判断哈。
                    得这样:if ([字符串1  compare:字符串2] == NSOrderedSame)
        3)带多个参数的compare方法。
                参数为一下三种情况:
                                        1)NSCaseInsensitiveSerch:不区分大小写(常用于不区分大小写时)。
                                        2)NSNumberSerch:按字符串长度比较(常用于数字字符串之间的比较)。
                                        3)NSLiteralSerch:区分大小写。
    4,判断字符串的开头结尾。
        -(BOOL)hasPrefix:字符串1。是否以字符串1开头?
        -(BOOL)hasSuffix:字符串2。是否以字符串2结尾?
 
    5、字符串查找。
            -(NSRange)rangeOfString:字符串3。
        注意;返回的是范围结构体。
    
    6、大小写转换。
        -(NSString*)uppercaseString。转换成大写。
        -(NSString*)lowercaseString。转换成小写。
        注意:转换后本来的字符串不会变化,它是通过返回值给出的结果。

    NSMutableString : 可变字符串

 
    NSMutableString *s1 = [NSMutableString stringWithFormat:@"my age is 10"];
    // 拼接内容到s1的后面
    [s1 appendString:@" 11 12"];
    
    // 获取is的范围
    NSRange range = [s1 rangeOfString:@"is"];
    [s1 deleteCharactersInRange:range];
    
    NSString *s2 = [NSString stringWithFormat:@"age is 10"];
    
    NSString *s3 = [s2 stringByAppendingString:@" 11 12"];
    








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值