zoukankan      html  css  js  c++  java
  • [Objective-c 基础

    Obj-C中没有包得概念,使用前缀进行区分

    自带类用NS开头命名
    关键字使用@开头
     
    A. 第一个OC程序
    1. 导入Foundation框架的主头文件
    #import <Foundation/Foundation.h>
    自动过滤重复引入的文件
     
    2. 源代码和头文件
    (1) .h : 类的声明文件
    (2) .m : 类的实现文件

    3.使用终端编译链接OC程序
    例如:编译链接 02OC.m
     cc 02OC.m -framework Foundation
    系统默认带的是C函数库,必须加上 framework 参数,引入Foundation框架
     

    B.OC和C的差异
    1.BOOL类型
    BOOL只有YES 和 NO 两个值,实际是 1 和 0
     
    2.面向对象
    (1)面向过程:关心步骤
    (2)面向对象:只关心结果
     
     
    C. OC中的类
    1.在同一个.m文件中入门体验:
    #import <Foundation/Foundation.h>

    //类的声明
    @interface Car : NSObject
    {
        //@public 可以让外部指针访问内部的成员变量
        @public
        int wheels;
        int speed;
    }

    //OC方法中任何数据类型都必须用()括起来
    - (void) run;

    @end

    //类的实现
     1 @implementation Car
     2 - (void) run
     3 {
     4     NSLog(@"车子跑起来");
     5 }
     6 
     7 @end
     8 
     9 int main()
    10 {
    11     Car *c = [Car new];//创建对象,分配内存空间
    12     c->wheels = 4;
    13     c->speed = 250;
    14     NSLog(@"车子有%i个轮子,时速是%i", c->wheels, c->speed);
    15     [c run];
    16    
    17     return 0;
    18 }
    2.常见错误
    (1)声明中不能赋初值,不能使用static等C语言中得修饰符
    (2)不能嵌套声明、定义
    (3)方法和函数要分辨开,C语言中的是函数,类中的是方法,方法也不能使用static等修饰符
    (4)使用类之前,要先声明,类似于函数
     
     
    ps:继承NSOject 让类具有实现对象的功能
     
    在声明中定义的方法全是公共方法
    数据类型都要小括号括起来 
     
    1.声明:
    1 @interface Student : NSObject
    2 {
    3     int age;
    4 }
    5 //'-' is used to define dynamic method, '+' is used to define static method
    6 - (int) getAge;
    7 - (void) setAge:(int)age;
    8 @end
     
    2.定义
    类的实现使用关键字@implementation, @end
    xx.m
     1 #import "Student.h"
     2 
     3 @implementation Student
     4 - (int) getAge
     5 {
     6     return age;
     7 }
     8 - (void) setAge:(int)newAge
     9 {
    10     age = newAge;
    11 }
    12 @end
    3.创建对象
    所有OC对象都是指针
    (1)分配空间
            //allocate the memory by static method, accept the obj by pointer
            Student *stu = [Student alloc];
    ps:OC中只能用指针间接操作对象
     
     
  • 相关阅读:
    Palindrome Partitioning
    triangle
    Populating Next Right Pointers in Each Node(I and II)
    分苹果(网易)
    Flatten Binary Tree to Linked List
    Construct Binary Tree from Inorder and Postorder Traversal(根据中序遍历和后序遍历构建二叉树)
    iOS系统navigationBar背景色,文字颜色处理
    登录,注销
    ios 文字上下滚动效果Demo
    经常崩溃就是数组字典引起的
  • 原文地址:https://www.cnblogs.com/hellovoidworld/p/4119231.html
Copyright © 2011-2022 走看看