美文网首页
OC 的概述

OC 的概述

作者: FutureEye | 来源:发表于2018-08-30 21:53 被阅读0次

了解 Objective - C

学习背景:

本人作者是一名 Android 草鸡程序员,就是因为自己有点菜,所以想看看 iOS 可不可以挽救我。建议有 Java 基础的人来阅读此文章。本身学习资料是来源于「黑马视频课程库」。感谢传智博客免费分享相关资源。

学习 iOS 首先是需要学习当然是 Objective - C,Swift 这种特别厉害的语言我暂时不准备学了。

简单了解一下 Obective - C( 后文直接以 OC 简称)

OC 历史

  • 20 世纪 80 年代初期,Brad Cox 结合 C 语言和 Smalltalk 的优势设计出 OC 语言,从此出世。
  • 1995 年,伟大的乔布斯的 NeXT 公司获取到了 OC 的全部商业版权。
  • 1996 年苹果公司收购 NeXT.NextStep. 其中其所用的开发语言 OC 获得了开发人员的认可, NextStep 更名为 Cocoa,从此 OC 成为了 MAC 个人电脑的主力语言。随着其他的移动端的设备的火爆, OC 成为了苹果公司的 iOS 系统主要开发语言

OC 现在

OC 的地位为 10 位。排在 Swift 前面一位。( 2018 年 7 月)

OC 未来

一句话,Swift 发布出来就是干掉他的,所以它迟早会被干掉,而且 Swift 是开源的。 OC 的被遗忘是迟早的事情。那为什么要学 OC ? Swift 再怎么变也是不会改变 OC 的所有的思想把,也就是语法上区别,这个区别和 Java 与 Kotlin 在 Android 开发区别不大的。

OC 与 C 语言的区别

OC 是完全兼容 C 语言的,在 OC 程序的类中,是可以直接使用 C 语言。从程序命名的定义上来看 Objective - C 就是面向对象的 C 语言。

OC 源文件

OC 源文件为 .h 和 .m( m表示 message,表示 OC 中的消息机制 )

在 .m 文件中可以写 OC 代码、C 代码、C++ 代码。反正 Java 的 .class 文件不能写 C 和 C ++。

NS 前缀

从之前的 OC 的历史中知道 OC 来自 NextStep. 所以许多的 OC 的类都是带了 NS 前缀。

注释

OC 的注释和 Java 一样分为两种:

单行注释:
// 我是单行注释
多行注释
/*
*我是多行注释
*/

@符号

在 OC 中大多数的关键字是用 @ 符号开头的。并且字符串类型是以 @ 开头申明的。

main 函数

这一点是和 Java 一致,程序的入口也是 main 方法。

OC 的 main 函数是可以不带参数。写法如下:

带参
int main(int argc,const char * argv[]){
    NSLog(@"Hello World!");
}
不带参
int main(){
    NSLog(@"Hello World!");
}

Java 语言的 main 函数

public static void main(String [] args){
    println("Hello World!");
}

OC 基本数据结构

OC 语言包含了 C 所有的数据结构,并且有更多其他的数据结构。

C:
  • int float double char
  • int的修饰符
  • short、long、 long long
  • unsigned 、signed
  • ...
OC:
  • CGFloat、BOOL、NSInteger

其中 BOOL 是的取值为 YES/ON 对应就是 Java true/false.

CGFloat 和 NSInteger 是为了兼容 64 位计算机和 32 位计算机而存在的,在 32 位操作系统中,CGFloat 表示的就是 4 个字节的 float,而在 64 位操作系统中,CGFloat 表示的是 8 个字节的 double.

NSInteger 也是类似的 —— 32 位操作系统中为 4 个字节 int. 64 位操作系统中为 8 个字节 long。

OC 也是有 Boolean 存在的。Boolean 表示的值就是 TRUE/FALSE 对应就是 Java true/false

BOOL 本质:

typedef signed char BOOL;
#define YES ((BOOL)1)
#define NO ((BOOL)0)

Boolean 本质:

typedef unsigned char Boolean;
#define true 1
#define false 0

本质区别是 Boolean 定义的是枚举。BOOL 定义的是宏。

OC 的数据类型
  • id 类型:万能指针,可以指向任何的 OC 对象。其实质是编译时不检测,运行时检测。
  • class - 表示类
  • SEL: 方法选择器
  • nil:nil 类似是 NULL 但是 nil 是一个对象
  • block : 表示一个代码块

相关文章

  • OC 的概述

    了解 Objective - C 学习背景: 本人作者是一名 Android 草鸡程序员,就是因为自己有点菜,所以...

  • OC第一部分

    本篇博客的主要知识点是: 01OC概述 02第一个OC程序 03OC基本语法概述 04NSLog的基本用法 05B...

  • Objective-C概述

    OC概述 • Objective-C简称OC,OC是C语言的扩充,并且OC是iOS和OS X操作系统的编程语言...

  • 1.2.1 OC概述

    本文并非最终版本,如想关注更新或更正的内容,详见文末的联系方式,如有疏忽和遗漏,欢迎指正。 本文相关目录:====...

  • WebViewJavascriptBridge 简单使用及原理分

    概述 从两个方面来讲: js不能直接调用oc的方法 oc可以通过 - (void)evaluateJavaSc...

  • iOS从零开发(第一期) --- Objective-C编程

    一 . Objective-C概述 OC语言的历史 Objective-C简称OC,扩充自C语言的面向对象编程语言...

  • OC基础-概述(一)

    Objective-C简称Obj-C或者OC。 1)面向对象的C OC相对于C只是增加了一部分面向对象的方法; 将...

  • 关于 Objective-C 和 C 语言的一些事

    Objective-C概述 1.Objective-C 简称为Obj-C/OC (下文为了省事,直接用OC代替)。...

  • OC之01基础之基础语法

    01 语法概述 不妨将OC说成是面向对象的C语言,因为OC是在C语言的基础是建立的,而且在OC的语法中是完全...

  • WebKit内核的研究与应用

    概述 本篇文章将阐述,WebKit核新的类和协议、MessageHandler消息处理器、JS->OC,OC->J...

网友评论

      本文标题:OC 的概述

      本文链接:https://www.haomeiwen.com/subject/pxqjwftx.html