Object-C

 

#import <Foundation/Foundation.h>
#pragma mark 狗类的声明
@interface Dog:NSObject
{
    @public
    NSString *color;
    float speed;
    NSString *sex;
    float weight;
}
-(void) eat:(NSString *) foodName;//
-(void) jiao;//
-(void) run;//
-(BOOL) isCompareColorWithOther:(Dog *) Dog;//传一个狗对象,与之前的狗颜色进行比较
-(float) isCompareSpeedWithOther:(Dog *) Dog;//速度进行比较
@end
#pragma mark 狗类的实现
@implementation Dog  //吃的方法
-(void) eat:(NSString *) foodName
{
    weight+=0.5f;
    NSLog(@"狗正在吃%@,狗的体重为%.2f",foodName,weight);
}
-(void) jiao
{
    NSLog(@"狗的颜色为%@,速度为%.2f,性别为%@,体重为%.2f",color,speed,sex,weight);
}

-(void) run
{
    weight-=0.5;
    NSLog(@"跑完之后的速度为%.2f,跑完之后的体重为%.2f",speed,weight);
}
-(BOOL) isCompareColorWithOther:(Dog *)Dog
{
    if(color == Dog->color)
    {
        return YES;
    }
    else
    {
        return NO;
    }
}
-(float) isCompareSpeedWithOther:(Dog *)Dog
{
    return (speed - Dog->speed);
}
@end
#pragma mark 人类的声明
@interface Person:NSObject
{
    @public
    NSString *name;
    Dog *dog;
}
-(void)feedDog:(NSString*)feedName;
-(void)liuGou;
@end
@implementation Person
-(void)feedDog:(NSString*)feedName
{
    [dog eat:feedName];
}
-(void)liuGou
{
    [dog run];
}
@end


int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Dog *dog1= [Dog new];
        dog1->color=@"金色";
        dog1->speed=37.0f;
        dog1->weight=27.0f;
        dog1->sex=@"";
        
        Dog *dog2= [Dog new];
        dog2->color=@"银色";
        dog2->speed=28.0f;
        dog2->weight=20.0f;
        dog2->sex=@"";
        
        [dog1 eat:@"骨头"];
        [dog1 jiao];
        [dog1 run];
        BOOL isSameColor=[dog1 isCompareColorWithOther:dog2];
        NSLog(@"颜色是否相同 = %d", isSameColor);
        float speedCha=[dog1 isCompareSpeedWithOther:dog2];
        NSLog(@"速度差 = %.2f", speedCha);
        
        NSLog(@"----------------------");
        Person *person=[Person new];
        person->name=@"张三";
        person->dog = dog2;
        [person feedDog:@"大骨头"];
        [person liuGou];
    }
    return 0;
}
_dog 人遛狗
#import <Foundation/Foundation.h>
@interface Person:NSObject
{
@public
    int _age;
    float _weight;
}
-(float) eat:(float)x;
-(float) walk:(int)y;
@end

@implementation Person
-(float) eat:(float)x
{
    if (x>0) {
        return _weight+0.6;
    }
    else
    {
        return _weight;
    }
}
-(float) walk:(int)y
{
    if (y>=100) {
        return _weight-(0.2*(y/100));
    }
    else
    {
        return _weight;
    }
}
@end
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Person *P= [Person new];
        P->_weight=50;
        float E=[P eat:1];
        float W=[P walk:200];
        NSLog(@"人吃食物后的体重为%.2f,人散步后的体重为%.2f",E,W);
    }
    return 0;
}
_person 人散步
#import <Foundation/Foundation.h>
@interface Car:NSObject
{
    //成员的声明
    @public
    int speed;
    NSString *color;
}
    //方法的声明
-(void) run;
@end

@implementation Car
//方法的实现

-(void) run
{
    speed=99;
    color=@"blue";
    NSLog(@"speed=%d,color=%@",speed,color);

}
@end
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        Car *c=[Car new];
//        c->speed=100;
//        c->color=@"red";
        [c run];
    }
    return 0;
}
声明实现及调用
#import <Foundation/Foundation.h>

#pragma mark 子弹类的声明
@interface Bullet : NSObject
{
    @public
    int bulletCount;
}
@end
#pragma mark 子弹类的实现
@implementation Bullet

@end

#pragma mark 枪类的声明
@interface Gun : NSObject
{
    @public
    NSString *size;
}
-(void) shoot:(Bullet *) bullet;
@end
#pragma mark 枪类的实现
@implementation Gun
-(void) shoot:(Bullet *) bullet
{
    if(bullet->bulletCount>0)
    {
        bullet->bulletCount --;
        NSLog(@"%@正在射击,剩余子弹:%d", size, bullet->bulletCount);
    }
    else
    {
        NSLog(@"没子弹了!");
    }
}
@end

#pragma mark -
@interface Soldier:NSObject
{
    @public
    NSString *name;
    int level;
    int life;
}
-(void) fireByGun:(Gun *)gun andBullet:(Bullet *)bullet;
@end
@implementation Soldier
-(void) fireByGun:(Gun *)gun andBullet:(Bullet *)bullet
{
    [gun shoot:bullet];
}
@end
//#pragma mark 士兵类声明
//@interface Soldier : NSObject
//{
//    @public
//    NSString *name;
//    int level;
//    int life;
//}
//-(void) fireByGun:(Gun *) gun andBullet:(Bullet *) bullet;
//@end
//#pragma mark 士兵类实现
//@implementation Soldier
//-(void) fireByGun:(Gun *) gun andBullet:(Bullet *) bullet
//{
//    [gun shoot:bullet];
//}
//@end

int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Gun *g = [Gun new];
        g->size = @"小米加步枪";
        Soldier *s = [Soldier new];
        s->name = @"斯沃特";
        s->life = 100;
        s->level = 2;
        Bullet *_bullet = [Bullet new];
        _bullet->bulletCount = 3;

        [s fireByGun:g andBullet:_bullet];
        [s fireByGun:g andBullet:_bullet];
        [s fireByGun:g andBullet:_bullet];
        [s fireByGun:g andBullet:_bullet];
    }
    return 0;
}
CrossFire
//  Calculator.h

#import <Foundation/Foundation.h>
#import "Car.h"
@interface Calculator : NSObject
-(int) Add:(int)num1 and:(int)num2;
+(int) Add:(int)num1 and:(int)num2;
-(void) dxdydx;
-(void) dxdylei;
-(void) _self;
+(void) leidydx;
+(void) leidylei;
-(void) dxdydx:(Car *)_car;

//格式化字符串
-(void) _NSString;
@end
-----------------------------------------------------------------------------------------
//  Calculator.m

#import "Calculator.h"
#import "Car.h"
@implementation Calculator
-(int) Add:(int)num1 and:(int)num2
{
    return num1+num2;
}
+(int) Add:(int)num1 and:(int)num2
{
    return num1+num2;
}
-(void) _NSString
{
    for (int i=1; i<11; i++)
    {
        NSString *str=[NSString stringWithFormat:@"%02d.jpg",i];
        NSLog(@"%@",str);
    }
}
-(void) dxdydx
{
    //对象方法调用对象方法
    Car *car=[Car new];
    [car run];
    [self _self];//self代表当前类的一个对象,调用自己的对象方法
}
-(void) _self
{
    NSLog(@"用self调用自身");
}
-(void)dxdylei
{
    //对象方法调用类方法
    [Car run];
}
+(void)leidydx
{
    //类方法调用对象方法
    Car *car=[Car new];
    [car run];
}
+(void)leidylei
{
    //类方法调用类方法
    [Car run];
}
//通过传参
-(void)dxdydx:(Car *)_car
{
    Car *car=[Car new];
    [car run];
}
@end
-----------------------------------------------------------------------------------------
//
//  Car.h

#import <Foundation/Foundation.h>

@interface Car : NSObject
-(void) run;
+(void) run;
@end
-----------------------------------------------------------------------------------------
//
//  Car.m

#import "Car.h"

@implementation Car
-(void) run
{
    NSLog(@"Car的对象方法被调用");
}
+(void) run
{
    NSLog(@"Car的类方法被调用");
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m

#import <Foundation/Foundation.h>
#import "Calculator.h"
#import "Car.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Calculator *c1=[Calculator new];
        int res1=[c1 Add:4 and:7];
        int res2=[Calculator Add:2 and:7];
        NSLog(@"对象方法加=%d",res1);
        NSLog(@"类方法加=%d",res2);
        NSLog(@"------------------");
        //生成类的一个对象,然后调用
        [c1 dxdydx];
        [c1 dxdylei];
        //作为一个参数调用
        Car *car=[Car new];
        [c1 dxdydx:car];
        NSLog(@"--------------------");
        [Calculator leidydx];
        [Calculator leidylei];
        NSLog(@"------------------------");
        [c1 _NSString];
    }
    return 0;
}
Calculator
//
//  Employee.h

#import <Foundation/Foundation.h>

@interface Employee : NSObject
{
    NSString * _name;
    int _age;
    float _salary;
}
-(void)setName:(NSString *)name;
-(NSString *)name;
//@property NSString * name;
-(void)setAge:(int)age;
-(float)salary;
@end
-----------------------------------------------------------------------------------------
//
//  Employee.m
//  P1
#import "Employee.h"

@implementation Employee
-(void)setName:(NSString *)name
{
    _name=name;
    NSLog(@"设置的名字为%@",_name);
}
-(NSString *)name
{
    _name=@"osay";
    return _name;
}
-(void)setAge:(int)age
{
    _age=age;
    NSLog(@"设置的年龄为%d",_age);
}
-(float)salary
{
    _salary=5687.8;
    return _salary;
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  封装
#import <Foundation/Foundation.h>
#import "Employee.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Employee *e=[Employee new];
        
        NSString * na=[e name];
        NSLog(@"名字为%@",na);
        [e setName:@"iosay"];
       
        [e setAge:20];
        float sa=[e salary];
        NSLog(@"工资为%.2f",sa);
    }
    return 0;
}
封装
//
//  Car.h

#import <Foundation/Foundation.h>

@interface Car : NSObject
{
    @public
    int _speed;
}
-(void)start;
-(void)stop;
@end
-----------------------------------------------------------------------------------------
//
//  Car.m

#import "Car.h"

@implementation Car
-(void)start
{
    NSLog(@"车已启动,速度为%d",_speed);
}
-(void)stop
{
    NSLog(@"车已熄火");
}
@end

-----------------------------------------------------------------------------------------
//  Person.h
//  P1

#import <Foundation/Foundation.h>
#import "Car.h"
@interface Person : NSObject
-(void)goHome:(Car*)car;
@end
-----------------------------------------------------------------------------------------
//
//  Person.m
//  P1
#import "Person.h"

@implementation Person
-(void)goHome:(Car*)car
{
    [car start];
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  匿名类的使用

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        Car *c= [Car new];
        c->_speed=99;
        [c start];
        [Car new]->_speed=100;
        [p goHome:[Car new]];
    }
    return 0;
}
匿名类的使用
//
//  Dog.h

#import <Foundation/Foundation.h>

@interface Dog : NSObject
-(void)run;
@end
-----------------------------------------------------------------------------------------
//
//  Dog.m
//  P1

#import "Dog.h"

@implementation Dog
-(void)run
{
    NSLog(@"-run->狗在跑");
}
@end
-----------------------------------------------------------------------------------------
//
//  Person.h
//  P1

#import <Foundation/Foundation.h>
#import "Dog.h"
@interface Person : NSObject
{
    //关联关系
    @public
    Dog *_dog ;
}
-(void)liuDog:(Dog *)dog;//依赖关系
-(void)liuDog;
@end
----------------------------------------------------------------------------------------
//
//  Person.m

#import "Person.h"

@implementation Person
//依赖关系
-(void)liuDog:(Dog *)dog
{
    [dog run];
}
//关联关系
-(void)liuDog
{
    [_dog run];
}
@end
----------------------------------------------------------------------------------------
//
//  main.m
//  关联和依赖-人遛狗

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person * p =[Person new];
        Dog * d1 = [Dog new];
        //[p liuDog:d1];
         p->_dog=d1;
        [p liuDog];
    }
    return 0;
}
关联和依赖-人遛狗
//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
-(void)run;
-(void)eat;
+(void)sleep;
+(void)music;
@end
-----------------------------------------------------------------------------------------
//
//  Person.m

#import "Person.h"

@implementation Person
-(void)run
{
    NSLog(@"人在跑");
    [self eat];
    NSLog(@"run:self:%p",self);
}
-(void)eat
{
    NSLog
    (@"人在吃");
}
+(void)sleep
{
    NSLog(@"人在睡");
    [self music];
    NSLog(@"sleep:self:%p",self);
}
+(void)music
{
    NSLog(@"人在听歌");
}
@end
-----------------------------------------------------------------------------------------
//
//  Static.h

#import <Foundation/Foundation.h>

@interface Static : NSObject
-(void)count;
@end
-----------------------------------------------------------------------------------------
//
//  Static.m

#import "Static.h"

@implementation Static
-(void)count
{
    static int count=1;
    NSLog(@"count=%d",count);
    count++;
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  self的使用
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Static.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        [p run];
        NSLog(@"当前对象:%p",p);
        
        NSLog(@"----------------------");
        [Person sleep];
        NSLog(@"当前类Person:%p",[p class]);
        
        NSLog(@"----------------------");
        Static *s=[Static new];
        [s count];
        [s count];
        [s count];
    }
    return 0;
}
self的使用
//
//  Child.h

#import "Person.h"

@interface Child : Person
-(void)play;

-(void)show;
@end
-----------------------------------------------------------------------------------------
//
//  Child.m

#import "Child.h"

@implementation Child
-(void)play
{
    NSLog(@"child play");
}
-(void)eat:(NSString *)foodName
{
    NSLog(@"child eat %@",foodName);
}
-(void)run
{
    NSLog(@"child run");
}

-(void)show
{
    _name=@"zhangyu";
}
@end
-----------------------------------------------------------------------------------------
//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int age;
    @public
    NSString * _name;
    @private
    float _salary;
    @protected
    float _weight;
}
-(void)setAge:(int)age;
-(int)Age;
-(void)eat:(NSString *)foodName;
-(void)run;
@end
---------------------------------------------------------------------------------------
//
//  Person.m

#import "Person.h"
NSString *blog=@"www.iosyu.com";

@implementation Person
-(void)setAge:(int)age
{
    self->age=age;
}
-(int)Age
{
    return self->age;
}
-(void)eat:(NSString *)foodName
{
    NSLog(@"一个人在吃%@",foodName);
}
-(void)run
{
    NSLog(@"一个人在跑步");
    
    [self blog];
}
-(void)blog
{
    NSLog(@"博客地址:%@",blog);
}

@end
---------------------------------------------------------------------------------------
//
//  test.h

#import "Child.h"

@interface test : Child

@end
---------------------------------------------------------------------------------------
//
//  test.m

#import "test.h"

@implementation test

@end
---------------------------------------------------------------------------------------
//
//  main.m
//  类的继承

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Child.h"
#import "test.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        [p setAge:20];
        NSLog(@"年龄为:%d",[p Age]);
        [p eat:@"苹果"];
        [p run];
        NSLog(@"--------------------------");
        Child *c=[Child new];
        [c setAge:10];
        NSLog(@"child年龄为:%d",[c Age]);
        [c eat:@"apple"];
        [c run];
        [c play];
        NSLog(@"--------------------------");
        test *t=[test new];
        [t eat:@"banana"];
    }
    return 0;
}
类的继承
//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    int _age;
}
-(void)setAge:(int)age;
-(int)age;
@end
-----------------------------------------------------------------------------------------
//
//  Person.m

#import "Person.h"

@implementation Person

-(void)setAge:(int)age
{
    _age=age;
}
-(int)age
{
    return _age;
}
-(NSString *)description
{
    NSString *str= [NSString stringWithFormat:@"age=%d",_age];
    return str;
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  description方法

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p= [Person new];
        [p setAge:2];
        NSLog(@"age=%d",[p age]);
        NSLog(@"p:%@",p);
        
        Class c1=[p class];
        NSLog(@"Person:%@",c1);
        NSLog(@"Person:%@",[p class]);
    }
    return 0;
}
description方法
//  Animal.h

#import <Foundation/Foundation.h>

@interface Animal : NSObject
-(void)run;
@end
-----------------------------------------------------------------------------------------
//
//  Animal.m

#import "Animal.h"

@implementation Animal
-(void)run
{
    NSLog(@"动物在跑");
}
@end
-----------------------------------------------------------------------------------------
//
//  Cat.h

#import "Animal.h"

@interface Cat : Animal

@end
-----------------------------------------------------------------------------------------
//
//  Cat.m
#import "Cat.h"

@implementation Cat
-(void)run
{
    NSLog(@"?在跑");
}
@end
-----------------------------------------------------------------------------------------
//
//  Dog.h

#import "Animal.h"

@interface Dog : Animal
-(void)eat;
@end
-----------------------------------------------------------------------------------------
//
//  Dog.m

#import "Dog.h"

@implementation Dog
-(void)run
{
    NSLog(@"?在疯跑");
}
-(void)eat
{
    NSLog(@"?在吃东西");
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  多态

#import <Foundation/Foundation.h>
#import "Cat.h"
#import "Dog.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Animal *a1=[Animal new];
        [a1 run];
        Animal *a2=[Dog new];
        [a2 run];
        [(Dog *)a2 eat];
        Animal *a3=[Cat new];
        [a3 run];
    }
    return 0;
}
多态
//
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
-(void)eat;
+(void)eat;
@end
-----------------------------------------------------------------------------------------
//
//  Person.m

#import "Person.h"

@implementation Person
-(void)eat
{
    NSLog(@"-eat");
}
+(void)eat
{
    NSLog(@"+eat");
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  类的本质

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        [p eat];
        NSLog(@"p:%p",p);
        Class c1=[Person class];
        NSLog(@"c1:%p",c1);
        Class c2=[p class];
        NSLog(@"c2:%p",c2);
        [c2 eat];
    }
    return 0;
}
类的本质
//
//  Person.h
//  P1

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    NSString * _name;
    int _age;
}
-(void)setName:(NSString *)name;
-(NSString *)name;
//@property NSString * name;
-(void)setAge:(int)age;
-(int)age;
@end
----------------------------------------------------------------------------------------
//
//  Person.m

#import "Person.h"

@implementation Person
-(void)setName:(NSString *)name
{
    _name=name;
}
-(NSString *)name
{
    return _name;
}
-(void)setAge:(int)age
{
    _age=age;
}
-(int)age
{
    return _age;
}
@end
----------------------------------------------------------------------------------------
//
//  main.m
//  点语法
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        p.name=@"Osay";
        p.age=20;
        NSLog(@"name=%@,age=%d",p.name,p.age);
    }
    return 0;
}
点语法
//
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    NSString * _name;
    int _age;
}
//-(void)setName:(NSString *)name;
//-(NSString *)name;
@property NSString * name;
@property int age;
//-(void)setAge:(int)age;
//-(int)age;
-(void)test;
@end
-----------------------------------------------------------------------------------------
//
//  Person.m
#import "Person.h"

@implementation Person
@synthesize name=_name;

//-(void)setName:(NSString *)name
//{
//   _name=name;
//}
//-(NSString *)name
//{
//   return _name;
//}


@synthesize age=_age;
//-(void)setAge:(int)age
//{
//    _age=age;
//}
//-(int)age
//{
//    return _age;
//}

-(void)test
{
    //NSLog(@"name=%@",name);
    NSLog(@"_name=%@",_name);
    //NSLog(@"age=%d",age);
    NSLog(@"_age=%d",_age);
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  Property&Synthesize

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        p.name=@"ios";//[p setName:@"ios"]
        p.age=20;
        NSLog(@"name=%@,age=%d",p.name,p.age);
        NSLog(@"-------------------------");
        [p test];
    }
    return 0;
}
Property&Synthesize
//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
//    NSString * _name;
//    int _age;
}
@property NSString * name;
//-(void)setName:(NSString *)name;
//-(NSString *)name;
@property int age;
//-(void)setAge:(int)age;
//-(int)age;
@end
-----------------------------------------------------------------------------------------
//
//  Person.m

#import "Person.h"

@implementation Person
//@synthesize age;
//@synthesize name;


//-(void)setName:(NSString *)name
//{
//   _name=name;
//}
//-(NSString *)name
//{
//   return _name;
//}
//
//
//
//-(void)setAge:(int)age
//{
//    _age=age;
//}
//-(int)age
//{
//    return _age;
//}

@end
-----------------------------------------------------------------------------------------
//
//  Student.h

#import "Person.h"

@interface Student : Person

@end
-----------------------------------------------------------------------------------------
//
//  Student.m

#import "Student.h"

@implementation Student
-(NSString *)name
{
    return @"zhangyu";
}
@end
-----------------------------------------------------------------------------------------
//
//  main.m
//  Property增强

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Student.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        p.name=@"ios";//[p setName:@"ios"]-->_name=@"ios"
        p.age=20;
        NSLog(@"_name=%@,_age=%d",p.name,p.age);
        NSLog(@"-------------------------");
        Student *s=[Student new];
        NSString * str=[s name];
        NSLog(@"stuName=%@",str);
    }
    return 0;
}
Property增强
//
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
@property NSString * name;
@property int age;
@end
-----------------------------------------------------------------------------------------
//
//  Person.m
#import "Person.h"

@implementation Person

@end
-----------------------------------------------------------------------------------------
//  Student.h
#import "Person.h"

@interface Student : Person
-(void)eat;
@end
-----------------------------------------------------------------------------------------
//
//  Student.m

#import "Student.h"

@implementation Student
-(void)eat
{
    NSLog(@"学生在吃。");
}
@end
-----------------------------------------------------------------------------------------
//  main.m
//  动态类型和静态类型
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        //动态类型
        Person *per=[Student new];
        [(Student *)per eat];
        //静态类型
        Person *p=[Person new];
        [p setName:@"zhangyu"];
        NSLog(@"Person name=%@",[p name]);
        //a)方法
        NSLog(@"---------------");
        NSObject *obj=[Person new];
        [(Person *)obj setName:@"Zhang Yu"];
        NSLog(@"Person Name=%@",[(Person *)obj name]);
        //b)方法
        NSLog(@"---------------");
        id object;
        object=per;
        [object eat];
        id two;
        two=obj;
        NSLog(@"%@",[two name]);
        NSLog(@"---------------");
        Person *pp=[Person new];
        BOOL isKind= [pp isKindOfClass:[Student class]];
        if(isKind)
        {
            [(Student *)pp eat];
        }
    }
    return 0;
}
动态类型和静态类型
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @public
    int _age;
}
@end
-----------------------------------------------------------------------------------------
//  Person.m

#import "Person.h"

@implementation Person
-(instancetype)init
{
    self=[super init];
    if(self)
    {
        _age=10;
    }
    return self;
}
@end
-----------------------------------------------------------------------------------------
//  main.m
//  重写构造方法

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p =[Person new];
        NSLog(@"p->_age=%d",p->_age);
    }
    return 0;
}
重写构造方法
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
@property int age;
@property NSString* name;
-(instancetype)initWith;
@end
----------------------------------------------------------------------------------------
//  Person.m

#import "Person.h"

@implementation Person
-(instancetype)initWith
{
    self=[super init];
    if(self)
    {
        self.name=@"zhang yu";
        self.age= 20;
    }
    return self;
}
@end
----------------------------------------------------------------------------------------
//  main.m
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        NSLog(@"p->_name=%@,p->_age=%d",p.name,p.age);
        
        NSLog(@"----------------");
        Person *p1=[[Person alloc]initWith];
        NSLog(@"p->_name=%@,p->_age=%d",p1.name,p1.age);
    }
    return 0;
}
自定义构造方法
//  Bullet.h
#import <Foundation/Foundation.h>

@interface Bullet : NSObject
{
    @public
    int bulletCount;
}
@end
-----------------------------------------------------------------------------------------
//  Gun.h

#import <Foundation/Foundation.h>
@interface Gun : NSObject
{
    @public
    NSString *_size;
    int _bulletNum;
}
-(void) shoot;
-(instancetype)initBullet;
@end
-----------------------------------------------------------------------------------------
//  Gun.m
#import "Gun.h"

@implementation Gun

-(void) shoot
{
    if(_bulletNum>0)
    {
        _bulletNum --;
        NSLog(@"%@正在射击,剩余子弹:%d", _size, _bulletNum);
    }
    else
    {
        NSLog(@"没子弹了!");
    }

}
-(instancetype)initBullet
{
    self=[super init];
    if(self)
    {
        _bulletNum=3;
    }
    return self;
}

@end
-----------------------------------------------------------------------------------------
//  Solider.h

#import <Foundation/Foundation.h>
#import "Gun.h"
@interface Solider : NSObject
{
    @public
    Gun *gun;
}
-(void)fireByGun;
-(instancetype)initGun;
@end
-----------------------------------------------------------------------------------------
//
//  Solider.m
#import "Solider.h"

@implementation Solider
-(void)fireByGun{
    [gun shoot];
}
-(instancetype)initGun
{
    self=[super init];
    if(self)
    {
        Gun *g=[[Gun alloc]initBullet];
        g->_size=@"ak47";
        gun=g;
    }
    return self;
}
@end
-----------------------------------------------------------------------------------------
//  main.m
//  打枪
#import <Foundation/Foundation.h>
#import "Solider.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
//        Solider *s=[Solider new];
//        Gun *g=[Gun new];
//        g->_size=@"ak47";
//        g->_bulletNum=3;
//        [s fireByGun:g];
        Solider *s=[[Solider alloc]initGun];
        [s fireByGun];
        [s fireByGun];
        [s fireByGun];
        [s fireByGun];
        NSLog(@"---------------");
        Solider *s1=[[Solider alloc]initGun];
        [s1 fireByGun];
    }
    return 0;
}
打枪滴
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject

@end
-----------------------------------------------------------------------------------------
//  Person.m
#import "Person.h"

@implementation Person
-(void)dealloc
{
    [super dealloc];
    NSLog(@"Person 被释放");
}
@end
-----------------------------------------------------------------------------------------
//  main.m
//  MRC内存管理

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    
    //Person *p=[Person new];
    @autoreleasepool
    {
        Person *p=[Person new];
        NSLog(@"retainCount=%lu",p.retainCount);
        [p autorelease];
    }
    
    NSLog(@"---------------");
    return 0;
}
MRC内存管理
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject

@end
-----------------------------------------------------------------------------------------
//  Person.m
#import "Person.h"

@implementation Person
-(void)dealloc
{
    NSLog(@"Person 被释放");
}
@end
-----------------------------------------------------------------------------------------
//  main.m
//  ARC内存管理

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    //Person *p=[Person new];
    
    __weak Person *per=[Person new];
    
    @autoreleasepool
    {
        
        
    }
    NSLog(@"----------");
    return 0;

}
ARC内存管理
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
@property(nonatomic,readonly,assign) int age;
-(void)show;
@end
-----------------------------------------------------------------------------------------
//  Person.m

#import "Person.h"

@implementation Person
-(void)show
{
    _age=10;
}
@end
-----------------------------------------------------------------------------------------
//  main.m

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        [p show];
        NSLog(@"年龄为:%d",p.age);
    }
    return 0;
}
Property属性特性的关键字
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
-(void)studyIos;
@end
-----------------------------------------------------------------------------------------
//  Person.m

#import "Person.h"

@implementation Person
-(void)studyIos
{
    NSLog(@"studyIos");
}
@end
-----------------------------------------------------------------------------------------
//  Person+play.h

#import "Person.h"
//只能添加方法,不能添加属性。
@interface Person (play)
-(void)playCS;
-(void)playLoL;
@end
-----------------------------------------------------------------------------------------
//  Person+play.m

#import "Person+play.h"

@implementation Person (play)
-(void)playCS
{
    NSLog(@"playCS");
}
-(void)playLoL
{
    NSLog(@"playLoL");
}
@end
-----------------------------------------------------------------------------------------
//  Person+study.h

#import "Person.h"

@interface Person (study)
-(void)studyIos;
-(void)studyFlash;
@end
-----------------------------------------------------------------------------------------
//  Person+study.m
#import "Person+study.h"

@implementation Person (study)
-(void)studyIos
{
    NSLog(@"studyIos");
}
-(void)studyFlash
{
    NSLog(@"studyFlash");
}
@end
-----------------------------------------------------------------------------------------
//  main.m
//  分类实现类方法的添加

#import <Foundation/Foundation.h>
#import "Person+play.h"
#import "Person+study.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        [p playCS];
        [p playLoL];
        [p studyIos];
        [p studyFlash];
    }
    return 0;
}
分类实现类方法的添加
//  Person.h
#import <Foundation/Foundation.h>

@interface Person : NSObject

@end
-----------------------------------------------------------------------------------------
//  Person.m
#import "Person.h"
#import "Person_aa.h"
@implementation Person
-(void)show
{
    _age=10;
}
-(int)countOfStr:(NSString *)str
{
    int count=0;
    for(int i;i<str.length;i++)
    {
        unichar c=[str characterAtIndex:i];
        if(c>='0'&&c<='9')
        {
            count++;
        }
    }
    return count;
}
@end
-----------------------------------------------------------------------------------------
//  Person_aa.h

#import "Person.h"

@interface Person ()
@property(nonatomic,readonly,assign) int age;
-(void)show;
-(int)countOfStr:(NSString *)str;
@end
-----------------------------------------------------------------------------------------
//  Person+play.h

#import "Person.h"

@interface Person (play)

-(void)playCS;
@end
-----------------------------------------------------------------------------------------
//  Person+play.m

#import "Person+play.h"

@implementation Person (play)

-(void)playCS
{
    NSLog(@"playCS");
}
@end
-----------------------------------------------------------------------------------------
//  main.m
//  扩展系统类

#import <Foundation/Foundation.h>
#import "Person+play.h"
#import "Person_aa.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        [p playCS];
        [p show];
        NSLog(@"person.age=%d",p.age);
        
        NSString *str=@"abc123";
        NSLog(@"%d",[p countOfStr:str]);
    }
    return 0;
}
扩展系统类
//  MyProtocol.h

#import <Foundation/Foundation.h>
//定义协议
@protocol MyProtocol <NSObject>
@required
-(void)eat;
-(void)sleep;
@optional
-(void)study;
@end
-----------------------------------------------------------------------------------------
//  Person.h

#import <Foundation/Foundation.h>
#import "MyProtocol.h"
#import "YourProtocol.h"
@interface Person : NSObject <MyProtocol,YourProtocol>

@end
-----------------------------------------------------------------------------------------
//  Person.m

#import "Person.h"
@implementation Person
-(void)eat
{
    NSLog(@"吃饭!");
}
-(void)sleep
{
    NSLog(@"睡觉!");
}


-(void)study
{
    NSLog(@"学习!");
}
-(void)music
{
    NSLog(@"听音乐!");
}
@end
-----------------------------------------------------------------------------------------
//  YourProtocol.h

#import <Foundation/Foundation.h>

@protocol YourProtocol <NSObject>
-(void)music;
@end
-----------------------------------------------------------------------------------------
//  main.m
//  OC--协议

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Person *p=[Person new];
        [p eat];
        [p sleep];
        [p study];
        [p music];
    }
    return 0;
}
OC--协议
//  lookBaby.h
#import <Foundation/Foundation.h>

@protocol lookBaby <NSObject>
-(void)wei;
-(void)hong;
@end
----------------------------------------------------------------------------------------
//  Baby.h

#import <Foundation/Foundation.h>
#import "lookBaby.h"
@interface Baby : NSObject
@property(nonatomic,weak) id <lookBaby> delegate;
-(void)eat;
-(void)sleep;
@end
----------------------------------------------------------------------------------------
//  Baby.m

#import "Baby.h"
@implementation Baby
-(void)eat
{
    [self.delegate wei];
}
-(void)sleep
{
    [self.delegate hong];
}
@end
----------------------------------------------------------------------------------------
//  BaoMu.h

#import <Foundation/Foundation.h>
#import "lookBaby.h"
@interface BaoMu : NSObject <lookBaby>

@end
----------------------------------------------------------------------------------------
//  BaoMu.m

#import "BaoMu.h"

@implementation BaoMu
-(void)wei
{
    NSLog(@"baby在吃!");
}
-(void)hong
{
    NSLog(@"baby在睡!");
}
@end
----------------------------------------------------------------------------------------
//  Person.h

#import <Foundation/Foundation.h>
#import "lookBaby.h"
@interface Person : NSObject <lookBaby>

@end
----------------------------------------------------------------------------------------
//  Person.m

#import "Person.h"

@implementation Person
-(void)wei
{
    NSLog(@"小孩在吃!");
}
-(void)hong
{
    NSLog(@"小孩在睡!");
}
@end
----------------------------------------------------------------------------------------
//  main.m
//  代理设计模式

#import <Foundation/Foundation.h>
#import "Baby.h"
#import "BaoMu.h"

#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Baby *b=[Baby new];
        BaoMu *baomu=[BaoMu new];
        b.delegate=baomu;
        [b eat];
        [b sleep];
        NSLog(@"-----------");
        Baby *b1=[Baby new];
        Person *p=[Person new];
        b1.delegate=p;
        [b1 eat];
        [b1 sleep];
    }
    return 0;
}
代理设计模式
//
//  main.m
//  字符串 NSString
//
//  Created by jiying on 16/4/24.
//  Copyright (c) 2016年 jiying. All rights reserved.
//

#import <Foundation/Foundation.h>
void test1()//字符串的初始化
{
    NSString *s1 =@"iosay";
    NSLog(@"s1=%@",s1);
    NSString *s2 = [NSString string];
    s2=@"iosay";
    NSLog(@"s2=%@",s2);
    NSString *s3=[[NSString alloc]initWithFormat:@"iosay"];
    NSLog(@"s3=%@",s3);
    NSString *s4=[NSString stringWithFormat:@"iosay"];
    NSLog(@"s4=%@",s4);
}

void test2()//字符串的基本操作
{
    //1.获取字符串的长度
    NSString *s1=@"iosay";
    NSString *s2=@"iosay zhangyu";//空格也算一个长度
    NSUInteger sl1= [s1 length];
    NSUInteger sl2=s2.length;
    NSLog(@"s1的长度为%lu",sl1);
    NSLog(@"s2的长度为%lu",sl2);
    //2.获取指定位置的字符
    for (int i=0; i<s1.length; i++)
    {
        char c= [s1 characterAtIndex:i];
        NSLog(@"%c",c);
    }
}

void test3()//字符串的转换
{
    NSString *s1=@"iosay";
    NSString *s2=@"IOSAY";
    NSString *supper = [s1 uppercaseString];
    NSString *slowr = [s2 lowercaseString];
    NSLog(@"s1=%@;s2=%@",supper,slowr);
    
    NSString *S=[s1 capitalizedString];
    NSLog(@"首字母%@大写了",S);

}

void test4()//字符串的判断
{
    NSString *s1=@"iosay";
    NSString *s2=@"iosyu";
    
    BOOL b=[s1 isEqualToString:s2];
    NSLog(@"%d",b);
    NSString *s=@"ios";
    
    BOOL bb=[s1 hasPrefix:s];
    NSLog(@"%d",bb);
    
    BOOL bbb=[s1 hasSuffix:s];
    NSLog(@"%d",bbb);

}

void test5()//字符串的比较
{
    NSString *s1=@"iosay";
    NSString *s2=@"IOSAY";
    //不区分大小写
    NSComparisonResult res=[s1 caseInsensitiveCompare:s2];
    switch (res) {
        case NSOrderedAscending:
            NSLog(@"s1<s2");
            break;
        case NSOrderedSame:
            NSLog(@"s1=s2");
            break;
        default:
            NSLog(@"s1>s2");
            break;
    }
    
    
    //区分大小写
    NSComparisonResult res1=[s1 compare:s2];
    switch (res1) {
        case NSOrderedAscending:
            NSLog(@"s1<s2");
            break;
        case NSOrderedSame:
            NSLog(@"s1=s2");
            break;
        default:
            NSLog(@"s1>s2");
            break;
    }
}

void test6()//字符串的查找
{
    NSString *str=@"iosay";
    NSString *s1=@"ay";
    NSRange ran=[str rangeOfString:s1];
    NSInteger loc=ran.location;
    NSInteger len=ran.length;
    NSLog(@"loc=%lu,len=%lu",loc,len);
}

void test7()//字符串的截取
{
    NSString *s=@"iosay";
    //1.从开头截取到指定位置(不包括指定位置)
    NSString *s1=[s substringToIndex:3];
    NSLog(@"截取的长度为%@",s1);
    //2.从指定位置开始截取,一直到最后(包括指定位置)
    NSString *s2=[s substringFromIndex:1];
    NSLog(@"截取的长度为%@",s2);
    //3.从指定位置到指定长度结束(包括指定位置)
    NSRange range={1,2};
    NSString *s3=[s substringWithRange:range];
    NSLog(@"截取的长度为%@",s3);
}
int main(int argc, const char * argv[]){
    @autoreleasepool
    {
        NSString *s=@"abcdef";
        NSString *s1=[s stringByReplacingOccurrencesOfString:@"a" withString:@"b"];
        NSLog(@"s1=%@",s1);
        
        NSString *s2=[s stringByAppendingString:@"ghi"];
        NSLog(@"s2=%@",s2);
        
        NSRange range={0,6};
        s2=[s stringByReplacingCharactersInRange:range withString:@"iosay"];
        NSLog(@"%@",s2);

    }
    
    return 0;
}
字符串 NSString
//  lookBaby.h

#import <Foundation/Foundation.h>
@class Baby;
@protocol lookBaby <NSObject>
-(void)wei:(Baby *)baby;
-(void)hong:(Baby *)baby;
@end
----------------------------------------------------------------------------------------
//  Baby.h
#import <Foundation/Foundation.h>

#import "lookBaby.h"
@interface Baby : NSObject
@property(nonatomic,weak) id <lookBaby> delegate;
-(void)eat;
-(void)sleep;
@end
----------------------------------------------------------------------------------------
//  Baby.m
#import "Baby.h"

@implementation Baby
-(void)eat
{
    [_delegate wei:self];
}
-(void)sleep
{
    [_delegate hong:self];
}
@end
----------------------------------------------------------------------------------------
//  BaoMu.h

#import <Foundation/Foundation.h>
#import "lookBaby.h"
@interface BaoMu : NSObject <lookBaby>

@end
----------------------------------------------------------------------------------------
//  BaoMu.m

#import "BaoMu.h"
#import "Baby.h"
@implementation BaoMu

-(void)wei:(Baby *)baby
{
    NSLog(@"%p在吃!",baby);
}
-(void)hong:(Baby *)baby
{
    NSLog(@"%p在睡!",baby);
}
@end
----------------------------------------------------------------------------------------
//  main.m
//  _@Class的使用

#import <Foundation/Foundation.h>
#import "Baby.h"
#import "BaoMu.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        Baby *b=[Baby new];
        BaoMu *baomu=[BaoMu new];
        b.delegate=baomu;
        [b eat];
        [b sleep];
        NSLog(@"-----------");
        NSLog(@"%p",b);
    }
    return 0;
}
@Class的使用
//  main.m
//  NSMutableString与NSString
//
#import <Foundation/Foundation.h>
void test()//有返回值
{
    NSString *str= [NSString string];
    NSMutableString *mstr=[NSMutableString string];
    //有返回值
    str=[str stringByAppendingString:@"iosay"];
    NSLog(@"%@",str);
    [mstr appendFormat:@"zhang yu"];
    NSLog(@"%@",mstr);
}
void test1()//NSMutableString
{
    //字符串的初始化
    NSMutableString *str=[NSMutableString string];
    //在源字符串结尾追加
    [str appendFormat:@"iosay"];
    NSLog(@"%@",str);
    //字符串的删除
    NSRange range={3,2};
    [str deleteCharactersInRange:range];
    NSLog(@"%@",str);
    //字符串的插入
    [str insertString:@"ay" atIndex:3];
    NSLog(@"%@",str);
    //字符串的替换
    NSRange ran={3,2};
    [str replaceCharactersInRange:ran withString:@"yu"];
    NSLog(@"%@",str);

}
int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        NSString *str=@"iosay";
        NSLog(@"%p",str);
        str=[str stringByAppendingString:@"nice"];
        NSLog(@"%p",str);
        NSLog(@"-----------");
        NSMutableString *mstr=[NSMutableString string];//初始化
        NSLog(@"%p",mstr);
        [mstr appendFormat:@"ios"];
        NSLog(@"%p",mstr); 
    }
    return 0;
}
NSMutableString与NSString
//  main.m
//  NSArray数组

#import <Foundation/Foundation.h>
void Array()
{
    //创建数组
    NSArray *arr1=[NSArray array];
    NSLog(@"%@",arr1);
    //创建一个只有一个元素的数组
    NSArray *arr2=[NSArray arrayWithObject:@"只有一个元素"];
    //创建一个包含多个元素的数组
    NSArray *arr3=[NSArray arrayWithObjects:@"one",@"two",@"three", nil];
    //用数组可以创建另外一个数组
    NSArray *arr4=[NSArray arrayWithArray:arr3];
    NSLog(@"%@",arr4);
    //用对象方法创建数组
    NSArray *arr5=[[NSArray alloc]initWithObjects:@"1",@"2",@"3",nil];
    //数组的简化形式
    NSArray *arr=@[@"ios",@"iosay"];
    NSLog(@"%@",arr);
    
    
    //访问数组
    NSLog(@"%lu",arr3.count);//获取长度[arr count];
    //访问数组某个元素
    NSLog(@"%@",[arr3 objectAtIndex:2]);
    //取元素的下标
    NSLog(@"%lu",[arr3 indexOfObject:@"two"]);
    //是否包含了某个元素
    BOOL loc=[arr3 containsObject:@"ios"];
    if(loc)
    {
        NSLog(@"yes");
    }
    else
    {
        NSLog(@"no");
    }
    //数组的遍历
    //for循环
    for (int i=0; i<arr3.count; i++)
    {
        NSLog(@"%@",arr3[i]);
    }
    //快速枚举法
    for(NSString *temp in arr5)
    {
        NSLog(@"%@",temp);
    }
    //使用block块
    [arr2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        NSLog(@"%@",obj);
    }];
}

void MutableArray()
{
    //创建一个可变数组
    NSMutableArray *marr1=[NSMutableArray array];
    [marr1 addObject:@"ios"];
    NSLog(@"%@",marr1);
    marr1[1]=@"zhang yu";
    NSLog(@"%@",marr1);
    //创建一个包含多个元素的可变数组
    NSMutableArray *marr2=[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];
    NSLog(@"%lu",marr2.count);
    NSLog(@"%@",[marr2 objectAtIndex:1]);
    NSLog(@"%lu",[marr2 indexOfObject:@"3"]);
    BOOL loc=[marr2 containsObject:@"2"];
    if(loc)
    {
        NSLog(@"yes");
    }
    else
    {
        NSLog(@"no");
    }
    //创建一个指定长度的数组
    NSMutableArray *arr=[NSMutableArray arrayWithCapacity:3];
    //扩展
    [arr addObject:@"one"];
    [arr addObject:@"two"];
    [arr addObject:@"three"];
    [arr addObject:@"ios"];
    NSLog(@"%@",arr);
    //删除
    [arr removeObject:@"three"];
    NSLog(@"%@",arr);
}

void Dictionary()
{
    //NSDictionary快速创建
    NSDictionary *dict=@{@"zy":@"zhang yu",@"hz":@"he zhi"};
    NSLog(@"%@",dict);
    //长度
    NSLog(@"%lu",[dict count]);
    //访问key和value
    NSLog(@"%@",[dict allKeys]);
    NSLog(@"%@",[dict allValues]);
    //通过键值获取value值
    NSLog(@"%@",[dict valueForKey:@"hz"]);
    
    //遍历
    for (NSString *key in dict)
    {
        NSLog(@"key=%@  value=%@",key,[dict valueForKey:key]);
    }
    
    [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        NSLog(@"%@---->%@",key,obj);
    }];
}


int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        //创建一个空可变字典
        NSMutableDictionary *mdic= [NSMutableDictionary dictionary];
        //添加键值对
        [mdic setValue:@"zhangsan" forKey:@"zs"];
        [mdic setValue:@"lisi" forKey:@"ls"];
        [mdic setValue:@"wangwu" forKey:@"ww"];
        [mdic setValue:@"zhaosi" forKey:@"zs"];
        NSLog(@"%@",mdic);
        //删除键值对
        [mdic removeObjectForKey:@"zs"];
        NSLog(@"%@",mdic);
        //修改
        [mdic setObject:@"zhangsanfeng" forKey:@"zs"];
        NSLog(@"%@",mdic);
        [mdic setValue:@"zhangsss" forKey:@"zs"];
        NSLog(@"%@",mdic);
        //查找
        NSArray *arr=[mdic allKeys];
        if([arr containsObject:@"zs"])
        {
            NSLog(@"zs=%@",[mdic valueForKey:@"zs"]);
        }
    }
    return 0;
}
NSArray数组
//  main.m
//  NSNumber的使用

#import <Foundation/Foundation.h>

void Number()
{
    //NSNumber是OC中处理数值类型的一个类
    //好处:把数值类型转换为对象类型存在数值或字典中
    int a=1;
    float f=9.8f;
    double d=51.99;
    NSNumber *n1=[NSNumber numberWithInt:a];
    NSNumber *n2=[NSNumber numberWithFloat:f];
    NSNumber *n3=[NSNumber numberWithDouble:d];
    
    NSMutableArray *arr=[NSMutableArray array];
    [arr addObject:n1];
    [arr addObject:n2];
    [arr addObject:n3];
    
    [arr[0] intValue];
    [arr[1] floatValue];
    [arr[2] doubleValue];
    
    float ff=[arr[0] intValue]+[arr[1] floatValue];
    NSLog(@"%.2f",ff);
    
    //直接包装
    //int c =100;
    //[arr addObject:@(c)];
    int c=100;
    [arr addObject:@(c)];
    NSLog(@"%@",arr);
    [arr addObject:@99];
    NSLog(@"%@",arr);
    [arr addObject:@"89"];
    NSLog(@"%@",arr);

}
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSMutableDictionary *mdict=[NSMutableDictionary dictionaryWithContentsOfFile:@"/Volumes/ZHANG YU/sophister/Two/Mac OS/P1/NSNumber的使用/Student.plist"];
        NSLog(@"mdict=%@",mdict);
        
        NSLog(@"-----------");
        NSMutableArray *marr=[NSMutableArray arrayWithContentsOfFile:@"/Volumes/ZHANG YU/sophister/Two/Mac OS/P1/NSNumber的使用/teacher.plist"];
        NSLog(@"marr=%@",marr);
            }
    return 0;
}
NSNumber的使用
//
//  ViewController.m
//  01-UIButton的frame、bounds、transfrom属性
//
//  Created by xxcg on 16/5/23.
//  Copyright © 2016年 xxcg. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *btnIcon;

- (IBAction)move:(UIButton*)sender;
- (IBAction)movewithcenter:(UIButton *)sender;
- (IBAction)scale:(UIButton *)sender;
- (IBAction)movewithtranform:(UIButton *)sender;
- (IBAction)rotate:(UIButton *)sender;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)move:(UIButton*)sender {
    //1.获取移动控件的位置
    CGRect orginframe= self.btnIcon.frame;
     //2.修改orginframe
    switch (sender.tag) {
        case 1:
            orginframe.origin.y-=10;
            break;
        case 2:
            orginframe.origin.x+=10;
            break;
            
        case 3:
            orginframe.origin.y+=10;
            break;
        case 4:
            orginframe.origin.x-=10;
            break;
        case 5:
            orginframe.size.height+=10;
            orginframe.size.width+=10;
            break;
        case 6:
            orginframe.size.height-=10;
            orginframe.size.width-=10;
            break;
    }
    
    //3.重新赋值
    self.btnIcon.frame=orginframe;
}

- (IBAction)movewithcenter:(UIButton *)sender {
    //1.获取原始的center
    CGPoint orginpoint= self.btnIcon.center;
    
    //2.修改
    orginpoint.y-=10;
    
    //3.重新赋值
    self.btnIcon.center=orginpoint;
}

- (IBAction)scale:(UIButton *)sender {
    //1.获取bounds
    CGRect orginbounds= self.btnIcon.bounds;
//    NSLog(@"%@",NSStringFromCGRect(orginbounds));
//    
//    CGRect orginframe=self.btnIcon.frame;
//    NSLog(@"%@",NSStringFromCGRect(orginframe));
    
    //2.修改
    orginbounds.size.height+=10;
    orginbounds.size.width+=10;
    
    //3.重新赋值
    self.btnIcon.bounds=orginbounds;
}

- (IBAction)movewithtranform:(UIButton *)sender {
//    {
//    //1.获取原始的transform
//    CGAffineTransform orgintransfrom= self.btnIcon.transform;
//    NSLog(@"%@",NSStringFromCGAffineTransform(orgintransfrom));
//    
//    //2.修改
//    orgintransfrom.tx-=10;
//    
//    //3.赋值
//    self.btnIcon.transform=orgintransfrom;
//    }
    
    
//    self.btnIcon.transform=CGAffineTransformMakeTranslation(0, -10);
    
    
     CGAffineTransform orgintransfrom= self.btnIcon.transform;
    switch (sender.tag) {
        case 100:
            self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, 0, -10);
            break;
        case 101:
            self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, 10, 0);
            break;
        case 102:
            self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, 0, 10);
            break;
        case 103:
            self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, -10, 0);
            break;
            
       
    }
   
}

- (IBAction)rotate:(UIButton *)sender {
    CGAffineTransform orgintranform=self.btnIcon.transform;
    self.btnIcon.transform=CGAffineTransformRotate(orgintranform, -M_PI_4 );
}
@end
Frame/Bounds/Center

 

转载于:https://www.cnblogs.com/yumaster/p/5487035.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值