objective-C 2.0

Posted 景云蝉语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了objective-C 2.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的主要内容,如果未能解决你的问题,请参考以下文章

iOS学习之Objective-C 2.0 运行时系统编程

AsyncDisplayKit 2.0 Objective-C 教程

一篇文章拿下《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》

《Effective Objective-C 2.0》读书/实战笔记二

《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(上)

《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(上)