IOS开发(1) – Objective-C基础

Objective-C

  • 函数比较
  • 以HelloWorld为例

    // Java
    public void helloWorld(bool ishelloworld) {  
        //干点啥  
    }
    // C++
    void HelloWorld(bool ishelloworld) {
    }
    // Objective-C
    -(void) HelloWorld:(BOOL)ishelloworld {
        // 干点啥
    }
    

    说明:
    前面带有减号(-) 的方法为实例方法,必须使用类的实例才可以调用的。
    对应的有(+)号, 代表是类的静态方法,不需要实例化即可调用。

  • 消息
  • 向对象发送信息,消息是ios的运行时环境特有的机制,和C++,Java下的类,或实例调用类或实例的方法类似。我这说的是类似,他们的机制实际上是有很大的差别。
    举例

    // Objective-C
    [object  message:param1 withParameter:param2];
    NSString *string;
    string = [[NSString alloc] initWithString:@"Hello"];
    // 转化Java和C++
    object.message();
    object.message(param1, param2);
    char* str;
    str = new string("Hello world");
    
  • Import
  • import "Class.h"
    import 
    import 
    // C++和Java类似include和import
    
  • Property和Synthesize
  • @property 声明用于自动创建property属性变量的getter和setter.
    @Synthesize声明实现了property属性变量的getter和setter.

  • 头文件函数定义
  • -(returnType)method  
    -(returnType)method:(dataType)param1  
    -(returnType)method:(dataType)param1 withParam:(dataType)param2
    // 类似C++
    returnType method();
    returnType method(param1);
    returnType method(param1, param2);
    
  • self
  • [self method];
    this.method();
    
  • 继承关系和接口实现
  • ClassA:ParentA  
    ClassA:ParentA  
    ClassA < Protocol >
    // C++和Java类似
    ClassA extends ParentA  
    ClassA extends ParentA implements interface  
    ClassA implements interface 
    

    objective-c的 Protocol和c++、java的接口类似.

  • 空指针
  • id obj = nil;
    NSString *hello = nil;
    // 类似Java和C++的空指针
    
  • id
  • objective-c的和C++里的(void*)类似
    

    欢迎留言

    avatar
      Subscribe  
    Notify of