zoukankan      html  css  js  c++  java
  • Objective-C 入门笔记

    简介

    建立在C语言之上,可以混编C/C++代码,编写一个类需要二个文件:

    .h的头文件

    .m的实现文件(如果是C/C++混编文件,文件后缀为.mm)

    既然有头文件,所以很多人会拿它与C++进行类比,它最重要的三个特性是:Message、Category、Protocol,与C++类比,二者之间的不同:

    1、它没有new也没有delete,但有类似的方法alloc、dealloc;

    2、不支持多继承,只支持单继承,但是提供了Protocol;

    3、它没有命名空间;

    4、不支持内联函数;

    5、不支持参数默认值;

    C++太过庞大,所以拿二者比较其实不是特别合适,跟Java相比,我觉得可能更适合一些吧

     

    快速入门

    1) 类的定义

    .h头文件

    @interface Hello : NSObject  
     
    @end
    .m实现文件
    #include "Hello.h"
    @implementationFraction
     
    @end

     
    通常我们定义一个类,都会让它继承自NSObject。有人会问NSObject后面的{}怎么省略了,因为我没有定义“实现变量”所以就把它省略了。
     
    因为OC不提供命名空间,所以类命名上要特别注意了,不然很容易覆盖/冲突而导致很多未知的问题。苹果定义的类,一般类名最前面有二个字母,比如NSObject中的NS,UIKit中的UI,所以为了避免跟苹果定义的类产生冲突,自定义的类以三个字母开头,比如BNR这样
     
     
    2) 方法的定义和调用
     
    方法分二种:实例方法、类方法,如上图所示,区别类方法和实例方法,主要是它的声明符:-、+
    + (返回值类型) 类方法名
    - (返回值类型) 实例方法名,需要先创建后再使用,比如这样:[[[Hello alloc] init] methodName];
     
    无论是哪种方法,调用都是使用中括号“[]”,方法的准确来讲应该称为发消息,它有三个要素:
    receiver(消息接收方)
    selector(选择器,通常指方法名)
    arguments(实参)
     
    通常类中调用自身的方法,用[self xx],self是一个隐式的局部变量,不需要声明self,程序自动会为self赋值,把它当作JavaScript中的this就好理解了。
     
    OC中默认所有的方法都是公开的,所以如果你想定义一个私有方法,不需要在.h中声明方法,直接在.m中定义方法就好,但是建议使用p_开头,这样避免与苹果中定义的一些私有方法名产生冲突。
     
     
    3) 基本数据类型
     
    OC建立在C语言之上,所以C中的所有基本数据类型它都支持,比如:int、float、char…
    OC自身定义的数据类型,都包含在Foundation中了,类名以NS开头,比如:NSArray、NSInteger、NSNumber,定义:NSString *myStr;
     
     
    更多关于Objective-C的学习资料,推荐 Ry’s Objective-C Tutorial 
  • 相关阅读:
    现代软件工程 第一章 概论 第3题——韩婧
    现代软件工程 第一章 概论 第2题——韩婧
    小组成员邓琨、白文俊、张星星、韩婧
    UVa 10892 LCM的个数 (GCD和LCM 质因数分解)
    UVa 10780 幂和阶乘 求n!中某个因子的个数
    UVa 11859 除法游戏(Nim游戏,质因子)
    Codeforces 703C Chris and Road 二分、思考
    Codeforces 703D Mishka and Interesting sum 树状数组
    hdu 5795 A Simple Nim SG函数(多校)
    hdu 5793 A Boring Question 推公式(多校)
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/4494230.html
Copyright © 2011-2022 走看看