Objective-C 学习 (一):Objective-C 概述
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 概述的更多相关文章
- OGG学习笔记01-基础概述
OGG学习笔记01-基础概述 OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据 ...
- NLP&深度学习:近期趋势概述
NLP&深度学习:近期趋势概述 摘要:当NLP遇上深度学习,到底发生了什么样的变化呢? 在最近发表的论文中,Young及其同事汇总了基于深度学习的自然语言处理(NLP)系统和应用程序的一些最新 ...
- Objective -C学习笔记之字典
//字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...
- Objective -C学习笔记 之copy(复制)
//自定义类对象实现copy需要遵守copy协议(否则程序崩溃),实现必须实现的协议方法,里面的代码就决定了你的copy是深是浅 #import <Foundation/Foundation.h ...
- objective C 学习之02
1. 函数 -(void) HelloWorld:(BOOL)ishelloworld{ //干点啥 } 前面带有减号(-) 的方法为实例方法,必须使用类的实例才可以调用的.对应的有+号, 代表是类的 ...
- objective c 学习(一)
问题一:我在程序中看到大量的减号.中括号和NS****这种东西,他们是什么玩意儿? 1 减号(或者加号) 减号表示一个函数.或者方法.或者消息的开始,怎么说都行. 比如c#中,一个方法的写法可能是: ...
- (二)我的Makefile学习冲动&&编译过程概述
前言 一 年轻的冲动 二 学习曲线 1 Makefile基本语法 2 bash基础 3 world 三 编译过程概述 1 主机预装工具 2 编译host工具 3 编译交叉工具链 4 编译内核模块 5 ...
- [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- MySQL数据库学习: 01 —— 数据库的概述
壹 概述 一 了解SQL 1.1 数据库基础 1.1.1 什么是数据库 数据库(database)保存有组织的数据的容器(通常是一个文件或一组文件). 易混淆:人们常常用“数据库”这个词语来代表他们使 ...
随机推荐
- Spring Security OAuth2 Demo -- good
1. 添加依赖授权服务是基于Spring Security的,因此需要在项目中引入两个依赖: <dependency> <groupId>org.springframework ...
- CentOS安装JAVA
http://hermosa-young.iteye.com/blog/1798026 每次都要搜索一下太麻烦了,留个底,方便以后查询 一般情况下,我们都要将linux自带的OPENJDK卸载掉,然后 ...
- Python实现控制台密码星号输入
import msvcrt, sys, os print('password: ', end='', flush=True) li = [] while 1: ch = msvcrt.getch() ...
- 学习笔记1--响应式网页+Bootstrap起步+全局CSS样式
一.学习之前要了解一些背景知识: 在2g时代,3g时代,4g时代,早期的网页浏览设备,功能机,智能机.(本人最喜欢的透明肌,和古典黑莓机) 1.什么是响应式网页? Responsive Web Pag ...
- JUC中Lock和ReentrantLock介绍及源码解析
Lock框架是jdk1.5新增的,作用和synchronized的作用一样,所以学习的时候可以和synchronized做对比.在这里先和synchronized做一下简单对比,然后分析下Lock接口 ...
- Link-Cut Tree指针模板
模板: 以下为弹飞绵羊代码: #define Troy #include "bits/stdc++.h" using namespace std; ; inline int rea ...
- NOIP2017 酱油送命记
Day0 一天,在机房,有点考前的紧张和慌张,打了一下午的模板,立了3个不该立的flag... Day1 拿到试题,万分紧张,T1是数论啊 害怕,一直以为D2T1才是数论,仔细观察却发现(flag1: ...
- 【爆料】-《伯明翰大学学院毕业证书》UCB一模一样原件
☞伯明翰大学学院毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归 ...
- springboot mybatis 多数据源配置
首先导入mybatis等包,这里就不多说. 下面是配置多数据源和mybatis,每个数据源对应一套mybatis模板 数据源1: package com.aaaaaaa.config.datasour ...
- hystrix基本介绍和使用(1)
一.hystrix基本介绍 Hystrix(https://github.com/Netflix/Hystrix)是Netflix(https://www.netflix.com/global)的一个 ...