1. OC在C的基础上新增了一些面向对象的语法,将C的复杂的、繁琐的语法封装的更为简单。且OC完全兼容C语言.

2. OC程序的源文件的后缀名是.m, m 代表message,代表OC中最重要的一个机制 —— 消息机制.   C程序的源文件的后缀名为.c

3. main 函数仍然是OC程序的入口和出口.

4. #import指令

1). 以#开头,是一个预处理指令。

2). 作用:是#include指令的增强版,将文件的内容在预编译的时候拷贝写指令的地方。

3). 增强:同一个文件,无论#import多少次,只会包含一次。

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

5. Foundation 框架

1). 框架是一个功能集合 苹果或者第三方事先将一些程序在开发程序时经常要用到的功能事先写好,把这些功能封装在1个1个的类或者函数之中。这些函数和类的集合就叫做框架。

2). Foundation:基础、基本。这个框架提供了一些最基本的功能。  输入和输出、一些数据类型。

6. 字符串NSString

1). C语言的字符串的存储方式

a. 使用字符指针

b. 使用字符数组存储

2). OC中设计了一个更为好用的用来存储字符串的一个类型 —— NSString

NSString 类型的指针变量,专门用来存储OC字符串的地址。

3). OC的字符串常量必须要使用一个前缀@符号

"jack" 这个是一个C语言的字符串。

@"jack" 这是一个OC字符串常量。

注意:NSString类型的指针变量,只能存储OC字符串的地址。

7. NS前缀

  NextStep  --->  Cocoa   ---> Foundation 框架

8. @符号

  1). 将C字符串转换为OC字符串

    例如:"jack"      @"jack"

  2). OC中的绝大部分的关键字都是以@符号开头.

9. OC 中的数据类型

  1). OC中支持C语言中所有的数据类型。

    a. 基本数据类型

      int、double、float、char

    b. 构造类型

      数组、结构体、枚举

    c. 指针类型

      int *p1;

    d. 自定义类型

      typedef

    e. 空类型

      void

  2). BOOL 类型

    a. 可以存储YES或者NO中的任意一个数据。

    b. 一般情况下,BOOL 类型的变量用来存储条件表达式的结果。如果条件表达式成立,结果是YES,否则为NO。

  3). Boolean 类型

    a. 可以存储true或者false

    b. 一般情况下,Boolean 类型的变量用来存储条件表达式的结果。如果条件表达式成立,结果是true,否则为false。

10. OC 的关键字

  1). OC支持C语言中的全部关键字,并且效果一致。

  2). OC也新增了一些关键字。OC中绝大数的关键字都是以@开头的,如@interface、@public

至此,OC的基本知识就了解的差不多了,也算是对OC入门了。

Objective-C 学习 (一):Objective-C 概述的更多相关文章

  1. OGG学习笔记01-基础概述

    OGG学习笔记01-基础概述 OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据 ...

  2. NLP&深度学习:近期趋势概述

    NLP&深度学习:近期趋势概述 摘要:当NLP遇上深度学习,到底发生了什么样的变化呢? 在最近发表的论文中,Young及其同事汇总了基于深度学习的自然语言处理(NLP)系统和应用程序的一些最新 ...

  3. Objective -C学习笔记之字典

    //字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...

  4. Objective -C学习笔记 之copy(复制)

    //自定义类对象实现copy需要遵守copy协议(否则程序崩溃),实现必须实现的协议方法,里面的代码就决定了你的copy是深是浅 #import <Foundation/Foundation.h ...

  5. objective C 学习之02

    1. 函数 -(void) HelloWorld:(BOOL)ishelloworld{ //干点啥 } 前面带有减号(-) 的方法为实例方法,必须使用类的实例才可以调用的.对应的有+号, 代表是类的 ...

  6. objective c 学习(一)

    问题一:我在程序中看到大量的减号.中括号和NS****这种东西,他们是什么玩意儿? 1 减号(或者加号) 减号表示一个函数.或者方法.或者消息的开始,怎么说都行. 比如c#中,一个方法的写法可能是: ...

  7. (二)我的Makefile学习冲动&&编译过程概述

    前言 一 年轻的冲动 二 学习曲线 1 Makefile基本语法 2 bash基础 3 world 三 编译过程概述 1 主机预装工具 2 编译host工具 3 编译交叉工具链 4 编译内核模块 5 ...

  8. [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  10. MySQL数据库学习: 01 —— 数据库的概述

    壹 概述 一 了解SQL 1.1 数据库基础 1.1.1 什么是数据库 数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件). 易混淆:人们常常用“数据库”这个词语来代表他们使 ...

随机推荐

  1. 解决VMware虚拟机报错“无法连接MKS:套接字连接尝试次数太多,正在放弃”

    1.错误描述 在VMware中打开虚拟机时报错: "无法连接MKS:套接字连接尝试次数太多,正在放弃" 物理机操作系统: Windows 7 虚拟机操作系统: Kali Linux ...

  2. valueOf函数详解

    在类型转换中,经常用到方法valueOf()和他toString(),所有对象(包括基本包装类型)都拥有这两个方法.这篇文章我们先看看valueOf()方法.valueOf()方法会将对象转换为基本类 ...

  3. Java面试题之对static的理解

    1.静态变量 类型说明符是static.2.静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个 ...

  4. VMware12下CentOS 7安装教程

    CentOS 7 DVD安装光盘(百度搜索CentOS即可找到官方主页):VMware Workstation 12 Pro及以上软件: 启动VMware Workstation 12 Pro程序,在 ...

  5. ubuntu下dpkg、phantomjs安装包下载地址

    dpkg下载地址 http://download.chinaunix.net/download/0003000/2377.shtml phantomjs下载地址 https://bitbucket.o ...

  6. TestNG entryset的用法及遍历map的用法

    以下内容引自 http://blog.csdn.net/bestone0213/article/details/47904107  (注: 该 url不是原出处.其博主注明转载,但未注明转自何处) k ...

  7. java泛型基础、子类泛型不能转换成父类泛型

    参考http://how2j.cn/k/generic/generic-generic/373.html 1.使用泛型的好处:泛型的用法是在容器后面添加<Type>Type可以是类,抽象类 ...

  8. 如何修改Tomcat默认端口?

    修改的原因: 关于8080端口:8080端口同80端口,是被用于WWW代理服务的,可以实现网页浏览,经常在访问某个网站或使用代理服务器的时候,会加上":8080"端口号.另外Apa ...

  9. retry.go

    package clientv3 import (     "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"     p ...

  10. jsp --- jquery

    1 给标签 添加属性 $('#principalMoney').attr("disabled", false);  $("#career1").css('dis ...