码迷,mamicode.com
首页 > 其他好文 > 详细

知识点6

时间:2016-05-05 11:01:33      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

把字典转成实体类的方法   当然你可以使用KVC的setValuesForKeysWithDictionary:方法,下面的方法也是一种解决方案。如果使用setValuesForKeysWithDictionary:方法,则Model基类中必须得重写下面的方法,不然如果遇到字典的Key和modle的属性不对应的情况则会出现程序崩溃的情况。

 

在公司做项目一直使用Storyboard,虽然有时会遇到团队合作的Storyboard冲突问题,但是对于Storyboard开发效率之高还是比较划算的。在之前的博客中也提到过,团队合作使用Storyboard时,避免冲突有效的解决方法是负责UI开发的同事最好每人维护一个Storyboard, 公用的组件使用轻量级的xib或者纯代码来实现。这样不但提高了开发效率,而且可以有效的避免Storyboard的冲突。如果每个人维护一个Storyboard, 遇到冲突了就以你自己的为准就OK了。

 

轮播图循环滚动原理:往ScrollView上贴4张图顺序是3-1-2-3。首次显示1的位置,然后滑动,等滑动到最后一个3时,无动画切换到第一个3的位置,然后在滚动。  ScrollView上的第一张图片和最后一张图片一样,你想显示的第一张图片放到ScrollView上的第二张,并改变Scollview的Contentoffset显示ScrollView上的第二张图片,当时间到时,自动改变ScrollView的ContentOffset.x的值,有动画的切换到下一张图片。如果目前是最后一张图片则无动画的切换到ScrollView的第一张图片,因为第一张图片和最后一张图片是一样的,所以用户看不到这个无动画的切换,切换后,图片有开始从第一个开始滚动,所以就可以无限循环的滚动了,

 

 

动画:  

  [self transitionWithType:kCATransitionPush WithSubtype:indexPath.row ForView:cell];

 

- (void) transitionWithType:(NSString *) type WithSubtype:(NSInteger) row ForView : (UIView *) view

{

    NSString *subtype = nil;

    if (row%2 == 0) {

        subtype = kCATransitionFromLeft;

    } else {

        subtype = kCATransitionFromRight;

    }

    

    //创建CATransition对象

    CATransition *animation = [CATransition animation];

    

    //设置运动时间

    animation.duration = 0.5f;

    

    //设置运动type

    animation.type = type;

    if (subtype != nil) {

        

        //设置子类

        animation.subtype = subtype;

    }

    

    //设置运动速度

    animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;

    

    [view.layer addAnimation:animation forKey:@"animation"];

}

 

 

 

 

UICollectionViewController的父亲(父类)是UIViewController, 而UIViewController的父亲是UIResponder,UIResponder继承自NSObject。

 

 

 

把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。

 

所以当我们说软件架构的时候,我们一定要讲清楚,究竟说的是部署的架构,还是代码的架构

 

如果项目开始,没有考虑架构的问题,以后随着业务功能的增多,流量的增加,可能会重写代码,推翻原有架构,重新设计等等说法,来说明架构的进化。这实际上就是当初为了完成任务,没有充分思考所带来的后果。

 

尽量不要让代码成为系统长大的瓶颈,降低架构分拆的成本。

 

 

UICollectionViewController的父亲(父类)是UIViewController, 而UIViewController的父亲是UIResponder,UIResponder继承自NSObject。

 

 

.用#import指令来导入相应的文件,#import的作用相当于PHP中的require_once,如果文件之前导入过了,则不导入,而#include会重复导入文件的

 

 

 //创建对象,完成对象的声明,内存分配,初始化

        Student *student = [[Student alloc] init];

 

 

//重写init方法,为本类添加构造方法

-(id) init

{

    if (self =[super init])

    {

        studentName = @"dashi";

        age = 18;

        hobby = @"hehe";

    }

    return self;

}

 

 

//实现便利构造器,进行类的实例化并调用initWithName

+ (id) studentWithName:(NSString *)name age:(int)sAge

{

    Student *student = [[Student alloc] initWithName:name iAge:sAge];

    return student;

}

 

Student *s2 = [Student studentWithName:@"dashi2" age:20];

 

 

strong : 表示强引用关系,即拥有对象的所有权。

    weak : 表示弱引用,不拥有对象的所有权,当目标对象被销毁之后,属性值会被自动设为nil;

               assign(赋值): 直接赋值,计数器不会加一,简单的赋值方法,默认赋值方式,适合基本数据类型

               copy(拷贝):把原来的对象拷贝过来,计数器会加一,比如原来对象的地址为0x01 ,拷贝过来的对象的地址为0x02;

               retain(保留):这种方式传递的是指针,原有的对象和被赋值的对象的地址是一样的

 

 

 

+(void) initialize;  在类第一次使用该类时调用该方法,第二次就不调用了

                测试:重写initalize方法

 

//重写initialize方法,会在类第一次使用时调用

+(void) initialize

{

    NSLog(@"initialize方法被调用了(类第一次被实例化)!");

}

 

 

//返回当前对象所对应的类

NSString *className =(NSString *) [self class];

NSLog(@"%@类的display方法", className);

 

//返回当前对象所对应的父类

NSString *superClassName = (NSString *) [self superclass];

NSLog(@"%@类的父类是%@", className, superClassName);

 

 

-(BOOL)isKindOfClass : (Class)aClass 判断某个实例是否属于某个类或者子类的对象

 

BOOL b =  [o2 isKindOfClass:[ObjectTest class]];

 

多态简单的说就是对于不同对象响应同一个方法时做出的不同反应。

 

 NSArray *array = @[@"lu", @"da", @"shi", @YES, @123];

 

 NSDictionary *dictionary = @{

                                     @"key0" : @"value0",

                                     @"key1" : @"value1",

                                     @"key2" : @"value2"

                                     };

        NSLog(@"key2 => %@", dictionary[@"key2"]);

 

知识点6

标签:

原文地址:http://www.cnblogs.com/wwm881101/p/5460912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!