01-初识OC

一、OC简介

1. C语言的基础上,增加了一层最小的面向对象语法

2. 完全兼容C语言

3. 可以在OC代码中混入C语言代码,甚至是C++代码

4. 可以使用OC开发Mac平台和iOS平台的应用程序

二、OC常用语法

1. 关键字

* 基本上所有关键字都是以@开头

@interface、@implementation、@end
@public、@protected、@private、@selector
@try、@catch、@throw、@finally
@protocol、@optional、@required、@class
@property、@synthesize、@dynamic
self、super、id、_cmd、__block、__strong、__weak、

2. 字符串都是以@开头

@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串

3. 其他语法

三、OC程序的开发过程

四、第一个OC程序

1. 代码编写

#import <Foundation/Foundation.h>
int main()
{
    NSLog(@"第2个OC程序");
    return 0;
}

2. 终端指令

* 编译 cc -c 代码.m // 这里的代码.m 表示 扩展名为.m的文件

* 链接 cc 代码.o -framework Foundation

* 运行 ./a.out

3. NSLog与printf的区别

* NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数

* NSLog输出后会自动换行,printf输出后不会自动换行

* 使用NSLog需要#import <Foundation/Foundation.h>

* 使用printf需要#include <stdio.h>

4. #import的作用

* 跟#include一样,用来拷贝某个文件的内容

* 可以自动防止文件内容被拷贝多次,也就意味着头文件中不用加入下面的预处理指令了

#ifndef _STDIO_H_
#define _STDIO_H_
#endif

5. Foundation框架的作用

* 开发OC、iOS、Mac程序必备的框架

* 此框架中包含了很多常用的API(应用编程接口)

* 框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可

#import <Foundation/Foundation.h>

6. BOOL的使用

* BOOL类型的变量有2种取值:YES、NO

#define YES (BOOL)1
#define NO  (BOOL)0

* BOOL的输出(当做整数来用)

NSLog(@"%d %d", YES, NO);
时间: 2024-10-29 19:06:47

01-初识OC的相关文章

2015.12.17 初识OC&amp;iOS 类和对象

iOS是iPhone Operation System的缩写. 使用iOS系统的设备有哪些『iPhone手机,iPad,Apple watch(Watch OS),iPod touch』. 交互层:cocoa touch 操作系统层:iOS 底层:硬件 #include 与 #import的区别 #include完成头文件的导入,可能会导致头文件相互引用和函数\变量的重复定义. eg: 为了解决这个问题,我们必须在文件的前面加上『#ifndef』 #import不仅完成头文件的引入,并且防止头文

集腋成裘-14-MongoDB系列-01初识MongoDB

粗知拙见:将数据通过类似json的形式存储于文档中. window下MongoDB下载 安装只需要选择对应的文件夹即可,注意位置D:\software\MongoDB\ 1:配置环境变量并检验是否安装成功(mongod -help) 2:启动数据库服务 创建一个批处理文件,mongoDB.bat 其语法为 mongod --dbpath 路径 (mongod --dbpath D:\software\MongoDBDATA) 或者,直接运行以上命令(本机是配置了环境变量) 3:启动数据客户端 创

mongodb在我这个C#下手眼中-01初识

虽然不是技术大牛,但是组长推荐看一下,而且我们正在做的项目,类似于资源中心,牵扯到各种怪异数据类型不同分库,所以至今都是采用这种方式:①MainData表存所有值,变化最大的分库数据用json存储②json所有的字段都对应着一个index表,用于索引③一个metadata表存储所有可能的json字段④如果字段是选择类型的值,则由一个新表储存 从这个框架看来,的确不错,但是问题就在于json和其他表的配合上,比如插入.修改.更新,会比较疯狂的…… 既然数据的人类可识别反序列化方式是两种,也就是xm

《Lucene In Action》 01 初识Lucene

基于Lucene 3.0.1 1.Lucene简单定义 Lucene是高性能.可扩展的信息检索(IR)工具库.向用户提供了简单易用的索引和搜索API,屏蔽了内部复杂而先进的信息检索技术实现过程Lucene仅仅是一个提供搜索功能的类库,你还需要根据实际情况自行完成搜索程序的其他模块(网页抓取.文档处理.服务器运行.用户界面和管理等)Lucene的核心jar包很小,只有1M左右,核心之外,存在大量的扩展模块.另外你如果寻找一些成型的网页搜索.文档处理或搜索引擎,可以在Lucene wiki的技术支持

简话Angular 01 初识Angular 数据绑定

1. Angular有哪些突出优点 1) MVC 基于Html-Javascript 2) 依赖注入 3) 数据双向绑定,响应式页面设计 4) 模块化,自定义指令 2. 简话数据绑定 1) 代码: 1 <input type="text" ng-model="hello1"> 2 3 <input type="text" ng-model="hello2"> 4 5 <textarea ng-bi

01 初识mysql

mysql架构关系型数据库和非关系型数据库存储引擎mysql中的几种引擎设置严格模式char和vachar TOC mysql架构 mysql数据库: C----->S架构软件 mysql数据库本质就是一个基于网络网络通信的软件 所有基于网络通信的软件,底层都是socket 关系型数据库和非关系型数据库 DBMS:数据库管理系统 关系型数据库: MySQL.Oracle.DB2.sql server..... 表结构 需要哪些字段 字段是什么类型 字段与字段类型 非关系型数据库: redis.m

《前端之路》之 初识 JavaScript

01 初识 JavaScript 作为在码农圈混迹了 四五年的老码畜来说,学习一门新的语言,就仿佛是老司机开新车一样 轻车熟路. 为什么会这么快呢? 因为各种套路啊- 任何一种计算机语言的最开始都是和 数据类型 这个东西分不开,那么今天,我们就从 JavaScript 的数据类型开始 一.JavaScript 的数据类型 因为对于很多的 jser 的初学者而言,或者说说对于很多代码初学者而言,数据类型是让人疑惑的地方.那么一定要解除这个疑虑. JavaScript 一共有 八种数据类型.其中包含

AngularJS自整理

准备: 从该地址获取AngularJS所以版本: https://code.angularjs.org/ 1.初时AngularJS 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script src="../angular.m

iOS 文件操作

下面整段代码你直接就可以用,具体看看好好看看问题,我也是看别人的. 孰能生巧. NSString 类,写了几个简单操作调用系统函数. %@打印NSString, NSArray对象. %i 整数 %f 浮点 NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomai

【学习笔记】3D图形核心基础精炼版-12:stage3D实战-动态阴影 shadow mapping 和范例工程4

目的: 物体投影在另一个物体身上,而另一个物体可能是平的,但大多数都是不平的多边形物体,这里考虑的是后者,这样可以适用于大多数场合的投影. 预览效果: 原理: 这里使用的是shadow mapping方式,其原理如下: 1.将场景的深度值预先渲染到 以光源位置为原点.光线发射方向为观察方向的投影坐标系中,形成深度纹理. 2.再次渲染场景的过程中,将每个片断(像素)变换到前述眼坐标系中,并缩放到[0,1]的范围内以便查询纹理. 3.以较暗的光照绘制场景 4.以当前片断在眼坐标中的S.T坐标查询深度