二十三天

原创 2015年11月19日 09:34:42

内存管理:copy,拷贝的时候不会对引用计数器作出任何改变,要遵循NSCopying协议,实现NSCopying协议中的方法。因为是拷贝,所以定义的成员属性是等于self->成员属性。

用assign也不会加1;

NSString类型的retainCount为-1  (NSString 存储的内容是变量(不可以被改变));


内存管理ARC:(不用空间就释放掉)

strong-----强引用,强指针--作用:有强指针指向之后,就不会把内存自动释放

weak-------弱引用,弱指针--作用:会释放掉,然后指向空

线程安全管理:

@property(nomatic)不加线程锁(一般使用不加线程锁)性能高

@property(atomic) 加线程锁,性能差


oc框架类库:

Foundation(字符串,容器, NSData)

NSString ---不可变

NSMutableString--可变

        NSString *str1=@"hello";
        NSString *str=[NSString stringWithString:str1];// 赋值其他NSString对象给一个对象
        NSLog(@"%@",str);
        NSString *str2=[[NSString alloc]initWithFormat:@"%s","hello" ];
        //计算长度
        NSLog(@"%lu",[str2 length]);
        //追加字符串
        NSString *str3=[str2 stringByAppendingString:@"oc"];
        NSLog(@"%@",str3);
        //str2里面的值是不会改变的,改变的只是str3的值
        //删除----NSString是只读的,不可修改。所以不可能删除里面的个别的字符
        NSMutableString *mustr=[[NSMutableString alloc]initWithFormat:@"1234"];
        NSLog(@"%@",mustr);
        NSRange range=NSMakeRange(0, 2);//第一个参数是从哪个位置开始,第二个参数是长度,从0开始
        
        [mustr deleteCharactersInRange:range];//删除
        NSLog(@"%@",mustr);
        
        [mustr appendString:@"hello"];// 追加
         NSLog(@"%@",mustr);
        
        [mustr setString:@"5-6-7-8"];// 替换
        NSLog(@"%@",mustr);
        
        //比较
        if ([mustr compare:@"5678"]==NSOrderedSame) {
             NSLog(@"same");
        }else{
            NSLog(@"not same");
        }
        
        //查找 并进行替换
        NSRange range1=[mustr rangeOfString:@"-"];// 查找
        while (range1.length!=0) {
            [mustr replaceCharactersInRange:range1 withString:@"."];//替换
            range1=[mustr rangeOfString:@"-"];

        }
       
        NSLog(@"%@",mustr);
结果:
2015-11-19 14:38:19.674 Foundation框架-- NSString NSMutableString[1347:90606] hello
2015-11-19 14:38:19.674 Foundation框架-- NSString NSMutableString[1347:90606] 5
2015-11-19 14:38:19.675 Foundation框架-- NSString NSMutableString[1347:90606] hellooc
2015-11-19 14:38:19.675 Foundation框架-- NSString NSMutableString[1347:90606] 1234
2015-11-19 14:38:19.675 Foundation框架-- NSString NSMutableString[1347:90606] 34
2015-11-19 14:38:19.675 Foundation框架-- NSString NSMutableString[1347:90606] 34hello
2015-11-19 14:38:19.675 Foundation框架-- NSString NSMutableString[1347:90606] 5-6-7-8
2015-11-19 14:38:19.675 Foundation框架-- NSString NSMutableString[1347:90606] not same
2015-11-19 14:38:19.675 Foundation框架-- NSString NSMutableString[1347:90606] 5.6.7.8
以特殊字符分割字符串然后输出

string是:Application is foundation iphoneis foundation mac

NSArray *array=[string componentsSeparatedByString:@" "];
        for (int i=0; i<array.count; i++) {
            NSLog(@"%@",array[i]);

        }
结果:
2015-11-19 15:45:12.550 Foundation框架-- NSString NSMutableString[1629:107125] Applications
2015-11-19 15:45:12.551 Foundation框架-- NSString NSMutableString[1629:107125] is
2015-11-19 15:45:12.551 Foundation框架-- NSString NSMutableString[1629:107125] foundation
2015-11-19 15:45:12.551 Foundation框架-- NSString NSMutableString[1629:107125] iphone



NSArray---- 用于固定的数据

NSMutableArray------用于不确定的数据

NSMutableArray *array=[[NSMutableArray alloc]init];
        [array addObject:@"aaa"];
        [array addObject:@"bbb"];
        [array addObject:@"ccc"];
        [array addObject:@"hehe"];
        //要想输出汉字就要重写方法: - (NSString *)descriptionWithLocale:(id)locale
        NSLog(@"%@",array);
        [array addObjectsFromArray:array];//把一个数组添加到另一个数组
        //[array removeObject:@"aaa"];//删除数组中的元素
        [array removeObject:@"aaa" inRange:NSMakeRange(3,3)];//删除指定位置的元素,第一个参数是位置,位置从零开始,第二个参数是长度,要查找的长度,就是在第二个参数的长度范围内查找
        NSLog(@"%@",array);
        //查找再删除
        NSUInteger integer=[array indexOfObject:@"bbb" inRange:NSMakeRange(4, 3)];
        [array removeObjectAtIndex:integer];
        NSLog(@"%@",array);


NSNumber -----使用NSNumber对象来创建和初始化不同类型的数字对象


学生管理系统:学生信息(保存,查询,删除,添加,修改),学生成绩(能查询,修改,显示)





版权声明:本文为博主原创文章,未经博主允许不得转载。

shell学习二十三天----打印

如果希望打印文件,最好预先处理一下,包括调整边距,设置行高,设置标题等,这样打印出来的文件更加美观.当然,不处理也能打印,但是可能会比较丑陋. pr命令 pr命令就是转换文件格式的,可以把较大的文...

C#高级编程二十三天----实现继承

如果要声明派生自另一个类的一个类,可以使用下面的语法: class DerivedClass: BaseClass { //function and data members here } ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二十三天
举报原因:
原因补充:

(最多只允许输入30个字)