[Object-C]读书笔记(一)

读书笔记(一)

1.判断是否实现某个方法

       
    A *a =[[A alloc] autorelease];
    
    if([a respondsToSelector:@selector(methodName)])
    {
        //do something
    }else{
        //do other something 
    }

2.判断某类是不是实现了某一协议

   A *a =[[A alloc] autorelease]; 

   if([a conformsToProtocol:@protocol(protocolName)])
   { 
   //do something 
   }else{ 
   //do other something 
   }

3.new和[[xxxx alloc]init]区别

我们先看看源码
+ new
{
id newObject = (*_alloc)((Class)self, 0);
Class metaClass = self->isa;
if (class_getVersion(metaClass) > 1)
    return [newObject init];
else
    return newObject;
}

+ alloc
{
return (*_zoneAlloc)((Class)self, 0, malloc_default_zone()); 
}

- init
{
    return self;
}
通过源码中我们发现,[className new]基本等同于[[className alloc] init];

区别只在于alloc分配内存的时候使用了zone.

它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度;

4.在头文件中声明私有方法

在.m文件中, 使用类别( Categor)可以实现声明私有方法.

5.判断某一对象是否为空

self=[super init];
if(self==[super init]){//或者 if(self)
}

6.字符串操作

(一).字符串截取
//从form到字符串末尾,包括form的位置
- (NSString *)substringFromIndex:(NSUInteger)from;
//从字符串开始到to位置,不包括to位置
- (NSString *)substringToIndex:(NSUInteger)to;
//截取range范围内的字符串
- (NSString *)substringWithRange:(NSRange)range; 
//利用给定的分隔符截取分隔符分开的子字符串数组
- (NSArray *)componentsSeparatedByString:(NSString *)separator;
(二).比较字符串


- (BOOL)isEqualToString:(NSString *)aString;

//是否以。。结尾

- (BOOL)hasSuffix:(NSString *)aString;

判断字符串以..开头
- (BOOL)hasPrefix:(NSString *)aString;


(三).比较字符串


//下列方法会逐个字符的比较,返回的NSComparisonResult包含升序,相等,降序三个值(NSOrderedAscending NSOrderedSame  NSOrderedDescending)
- (NSComparisonResult)compare:(NSString *)string;


- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;


- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange;


- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange locale:(id)locale; /


//忽略大小写比较

- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string;


(四).大小写操作:

- (NSString *)uppercaseStringWithLocale:(NSLocale *)locale NS_AVAILABLE(10_8, 6_0);//全部转成大小


- (NSString *)lowercaseStringWithLocale:(NSLocale *)locale NS_AVAILABLE(10_8, 6_0);//全部转成小写


- (NSString *)capitalizedStringWithLocale:(NSLocale *)locale NS_AVAILABLE(10_8, 6_0);//仅首字母转大小


 


类似java的indexOf方法:

- (NSRange)rangeOfString:(NSString *)aString;//如果包含则返回aString的位置,否则返回location为-1,length为0


NSString *string=@“abcdefg”;

NSRange range=[string rangeOfString:@“bcd”];
if(range.location==NSNotFound){
//do something
}else{
NSLog(@“找到的范围:%@”,NSStringFromRange(range));
}
 
//下面的mask是指定从哪里开始搜索即从头向尾还是从尾到头的顺序搜索


- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask;


NSString *string=@“abcdefg”;
//从尾到头的顺序搜索
NSRange range=[string rangeOfString:@“bcd” options:NSBackwardsSearch];
if(range.location==NSNotFound){
//do something
}else{
NSLog(@“找到的范围:%@”,NSStringFromRange(range));
}


//下面的searchRange是指定要搜索的范围


- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;


- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)locale NS_AVAILABLE(10_5, 2_0);


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值