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

objective-C 2.0

时间:2016-03-31 00:12:54      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

objective-C五大特性:

  • 完全兼容C
  • 面向对象
  • 单继承(OC里的函数均为虚函数、通过类别和协议实现伪多继承)
  • 动态绑定(dynamic_cast 把基类指针转化为子类指针的时候会自动做判断、ID类型 表示任意类型的对象,实现动态绑定)
  • 消息机制(SmallTalk语言 解决空指针错误崩溃)
#import <Foundation/Foundation.h>

//:表示公有继承
@interface Person : NSObject
{
    //属性,实例变量,默认权限为protected
    int age;
    //对象声明时必须使用*
    NSString * name;
}  
//生成set和get方法
@property (nonatomic,assign) int age; 

// - 表示实例的方法(消息),+ 表示类的方法(消息)static
- (void)eat;
- (void)setName:(NSString *)nameValue;
@end
#import "Person.h"

@implementation Person

@synthesize age;

- (void)eat
{
    NSLog(@"eat function called");        
}

- (void)setName:(NSString *)nameValue
{
    if (nameValue)
    {
         //指针不能直接赋值,否则释放时会出现问题
         if (name != nameValue)
         {
                name = nil;
                name = [NSString stringWithString:nameValue];
          }
    }
}

@end
#import "Person.h"
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool
    {
        //alloc为+方法,init为-方法
        Person * p = [[Person alloc]init];
        
        [p eat];
        //oc字符串必须以@开头
        [p setName:@"yangjing"];
    }
    return 0;
}

 

objective-C 2.0

标签:

原文地址:http://www.cnblogs.com/jenayfighting/p/5339351.html

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