美文网首页人生几何?
OC基础-概述(一)

OC基础-概述(一)

作者: 浮华_du | 来源:发表于2021-08-26 14:28 被阅读0次

Objective-C简称Obj-C或者OC。

1)面向对象的C

  • OC相对于C只是增加了一部分面向对象的方法;
  • 将C的一些复杂的繁琐的语法封装的更为简单;
  • OC完全兼容C语言;
后缀
  • OC后缀.m m代表OC中最重要的一个机制--消息机制
  • C 后缀.c
main函数
  • 依然是程序的入口和出口
import指令

1).以#号开头,是1个预处理指令.
2).作用: 是#inlcude指令的增强版. 将文件的内容在预编译的时候拷贝写指令的地方.
3).增强: 同1个文件无论#import多少次,只会包含1次.
如果#include指令要实现这个效果 就必须要配合条件编译指令来实现.
而#import指令只需要直接包含就可以 其他什么都不用作.

  • 简要原理: #import指令在包含文件的时候,底层会先判断这个文件是否被包含 如果被包含就会略过 否则才会包含.

2)

Foundation框架

这个框架中提供了一些最基础的功能 输入和输出. 一些数据类型.
Foundation.h的路径:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/Foundation.h
Foundation.h这个文件中包含了Foundation框架中的其他的所有的头文件.
所以,我们只要包含Foundation.h 就相当于包含了Foundation框架中所有的头文件.
那么Foundation框架中的所有的函数和类就可以直接使用.

NSLog
  • NSLog 执行时间+程序名称+进程编号+内容
    2021-07-21 09:50:35.230746+0800 TestOc[3720:35996] Hello, World!
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {//自动释放池
       float f = 12.12f;
        NSLog(@"Hello, World!--%f",f);
    }
    return 0;
}
NSString

NSString类型的指针变量,只能用来存储OC字符串的地址;
NSString 字符串常量必须使用一个@前缀;
(指针变量加星号)
注意:

  • NSLog第一个参数是一个OC字符串,需要使用@前缀;
  • NSLog输出OC字符串的值,使用占位符%@
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
    NSString *str = @"张三";
    NSLog(@"大家好,我叫%@",str);
    return 0;
}

3)函数的定义与调用

#import <Foundation/Foundation.h>
void sayHI();
int main(int argc, const char * argv[]) {
    sayHI();
    return 0;
}

void sayHI(){
    NSString *str = @"张三";
    NSLog(@"大家好,我叫%@",str);
}

image.png

4)C与OC对比

1. OC程序的编译、链接和执行步骤和C语言基本一致;

以在终端中建立OC语言文件为例

  • 在当前工作文件夹下,用touch命令建立一个.m的OC语言程序文件
  • 在.m文件中写上符合OC语法规范的源代码
  • 使用cc -c命令将源代码编译为目标文件.o文件
  • 使用cc命令将.o文件链接源文件
    与C语言略有不同,必须要告诉编译器去哪一个框架中找OC文件中使用的函数或者类 cc first.o -framework Foundation
2. OC和C各个阶段的后缀名对比
对比 C OC
源文件 .c .m
目标文件 .o .o
可执行文件 .out .out
3. OC和C的数据类型对比

首先,OC中支持C语言中的所有的数据类型。

  • 基本数据类型 (int double float char)
  • 构造类型 (数组 结构体 枚举)
  • 指针类型 (int* double* float* char*)
  • 空类型 (void)
  • typedef自定义类型

OC支持以上所有类型
另外,OC还建立了一些新的数据类型:

  • BOOL类型--YES/NO
    BOOL类型的本质是typedef signed char BOOL//有符号的char变量
    进一步查看其定义内容会发现:
#define YES ((BOOL)1)
#define NO ((BOOL)0)

所以我们得知,YES实际上就时1,NO实际上就是0。

        BOOL isOK = YES;
        NSLog(@"%d", isOK);
//2021-07-21 09:59:40.066494+0800 TestOc[5004:50166] 1
  • Boolean类型--true/false
    Boolean类型的本质是typedef unsigned char Boolean;//无符号的char变量
#define true 1
#define false 0

所以我们得知,true实际上就时1,false实际上就是0。

       Boolean isOK = true;
        NSLog(@"%d", isOK);
//2021-07-21 10:05:29.350056+0800 TestOc[5758:57446] 1
  • class 类
  • id 万能指针
  • nil 和C语言的NULL差不多
  • SEL 方法选择器
  • block 代码段

仅供个人学习使用

https://zhuanlan.zhihu.com/p/174716626

相关文章

  • OC基础-概述(一)

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

  • OC之01基础之基础语法

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

  • iOS进阶系列之基础篇

    原文地址iOS进阶系列之基础篇 概述 基础篇包含的范围较广,是一个iOS开发者必须具备的知识。包含了以下方面:OC...

  • OC第一部分

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

  • OC 的概述

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

  • 1.2.1 OC概述

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

  • Objective-C概述

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

  • OC 基础(一)

    import import 的功能和 include一样,是将右边的文件拷贝到当前import位置。OC的预处理指...

  • OC知识点整理-(零)内容概要

    我们在OC中基础中,尝尝会被问到下面几个基础方面的问题。 OC基础 Category 关联对象 代理,通知 KVO...

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

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

网友评论

    本文标题:OC基础-概述(一)

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