目录

一、OC语言介绍

二、ios系统

三、在OC语言开发中使用C语言语法

四、面向对象

回到顶部

一、OC语言介绍

1 早在20世纪80年代早期,BardCox发明了Objective-C,扩充了C,面向对象的编程语言。

2 NextSTEP简称NS;

1985年,Steve Jobs成立了NeXT公司;

1988年,Next Software公司获得了OC语言的授权,NEXTSTEP环境,为了苹果操作系统创建的开发包,发行操作系统OSX的基础,

1996年,苹果公司收购了NeXT Software公司,NEXTSTEP环境为了苹果操作系统,创建的开发包,发行操作系统OSX的基础。这个开发环境版本被苹果公司更名位Cocoa框架。

3 Cocoa框架是苹果公司为了MAC OS X所创建的原生面向对象的编程环境。Cocoa应用程序一般在苹果的工具xcode上用OC编写的应用程序。

APP Store (全称:Application Store应用程序商店)

使用cocoa编程环境开发的应用程序叫cocoa应用。

使用cocoa touch编程框架 -> IOS app

cocoa框架由两部分组成,Foundation框架和Application Kit框架。

Foundation框架是基本框架,包括:字符串、数字、数组、字典集合等。

Application Kit框架,应用程序工具箱,包括实现程序图形、事件驱动和用户界面的全部对象,如:窗口、对话框、按钮、菜单。。。而且这个列表还在不断添加。

回到顶部

二、IOS系统

IOS系统是苹果硬件(便携设备)上的一个操作系统,在2007年1月9日,MacWorld大会上公布的系统,最初设计给iPhone使用的,后来陆续用到iPod touch、iPad、apple TV等苹果产品。

开发方向:IOS App、IOS Game

使用语言:IOS App(C、OC)、IOS Game(C、OC、C++)

第一个程序

1 iOS

create project -> ios -> application -> single view  application -> run

2 OSX

create project -> osx -> create project -> command line tool -> type:foundation

测试:C语言的语法是否可以在main.m文件使用变量、条件分支、循环、函数、结构体、指针。

回到顶部

三、在OC语言开发中使用C语言语法

1 main.c -> main.m

2 include - > import(避免重复导入)

标准函数库 -> 库(Foundation)

3 输出函数printf -> NSLog(加入了时间、地点)

在OC中所有的字符串前都要加上'@'符号

4 在编译的时候,gcc不支持OC的新语法,应该使用新的编译命令clang,编译链接时,需要指定使用的框架(-framework Foundation)

命令行:clang -framework Foundation main.m

OC中独有的内容

1 xcode编译器,LLVM:LowLevelVirtualMachine

2 逻辑值数据类型

BOOL = YES(1) // NO(0)

练习:定义一个函数,求两个数是否相等,函数的返回值是逻辑只类型,在main函数中,根据逻辑值输出两个数是否相等。

 //bool
#import <Foundation/Foundation.h>
//练习:定义一个函数,求两个数是否相等,函数的返回值是逻辑值类型,在main函数中,根据逻辑值输出两个数是否相等。
BOOL test(int i1,int i2)
{
if (i1 == i2) {
return YES;
}else{
return NO;
}
} int main(int argc, const char * argv[])
{ @autoreleasepool {
BOOL b;
int i1 = ,i2 = ;
b = test(i1, i2);
if (b) {
NSLog(@"相等");
}else{
NSLog(@"不相等");
}
NSLog(@"Hello, World!");
//逻辑值数据类型
bool b1 = true;
NSLog(@"b1:%d",b1);
BOOL b2 = YES;
NSLog(@"b2:%d",b2); }
return ;
}

回到顶部

四、面向对象

1 类是一种主观思想,是对我们需要解决问题的一种抽象,是创建对象的模型。

2 对象就是具体的数据集合,计算机会把类->实例化->对象。

3 第一个面向对象程序

设计类Student,一个类由两个部分组成.h(声明)和.m(实现)

类的实例化->对象:

通过类发送alloc(开辟内存空间)创建对象,通过对象(指针变量)找到内存的对象。

向对象发送消息(函数),此时对象就会响应消息。

对象如果有属性,对象.属性=值,给对象的属性赋值。

练习:创建一个point类,有横坐标x,纵坐标y,能显示位置(show方法),创建两个位置并显示。

main.m

 //
// main.m
// 第一个面向对象程序
//
// Created by tarena on 13-12-16.
// Copyright (c) 2013年 tarena. All rights reserved.
// #import <Foundation/Foundation.h>
#import "Student.h" int main(int argc, const char * argv[])
{ @autoreleasepool {
//创建Student对象,alloc 开辟内存空间
//Student类 -> alloc实例化 -> stu对象(指向首地址)
Student* stu = [Student alloc];
NSLog(@"stu address:%p",stu);
stu.age = ;
[stu study];//调用类中的动态(-)方法
//[Student study];//调用类中的静态(+)方法 }
return ;
}

Point.h

 //
// Point.h
// 第一个面向对象程序
//
// Created by tarena on 13-12-16.
// Copyright (c) 2013年 tarena. All rights reserved.
// #import <Foundation/Foundation.h> @interface Point : NSObject @end

Point.m

 //
// Point.m
// 第一个面向对象程序
//
// Created by tarena on 13-12-16.
// Copyright (c) 2013年 tarena. All rights reserved.
// #import "Point.h" @implementation Point @end

Student.h

 //
// Student.h
// 第一个面向对象程序
//
// Created by tarena on 13-12-16.
// Copyright (c) 2013年 tarena. All rights reserved.
// #import <Foundation/Foundation.h> @interface Student : NSObject @property int age; -(void)study;
@end

Student.m

 //
// Student.m
// 第一个面向对象程序
//
// Created by tarena on 13-12-16.
// Copyright (c) 2013年 tarena. All rights reserved.
// #import "Student.h" @implementation Student
-(void)study
{
NSLog(@"%d调用了study方法",self.age);
}
@end

说明:因为OC文件太多,代码也太多,就不分享了。

01-OC介绍的更多相关文章

  1. 《The Linux Command Line》 读书笔记01 基本命令介绍

    <The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...

  2. 开源Math.NET基础数学类库使用(01)综合介绍

    原文:[原创]开源Math.NET基础数学类库使用(01)综合介绍 开源Math.NET基础数学类库使用系列文章总目录:   1.开源.NET基础数学计算组件Math.NET(一)综合介绍    2. ...

  3. Nmap原理-01选项介绍

    Nmap原理-01选项介绍 1.Nmap原理图 Nmap包含四项基本功能:主机发现/端口扫描/版本探测/操作系统探测.这四项功能之间存在大致的依赖关系,比如图片中的先后关系,除此之外,Nmap还提供规 ...

  4. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍

    这是我的vue.js 2.0的学习笔记,采取了将官方文档中的代码集中到一个文件的形式.目的是保存下来,方便自己查阅. !官方文档:https://cn.vuejs.org/v2/guide/ 01. ...

  5. 01.课程介绍 & 02.最小可行化产品MVP

    01.课程介绍 02.最小可行化产品MVP 产品开发过程 最小化和可用之间找到一个平衡点

  6. 前端 ----- 01 -html介绍和head标签

    01-html介绍和head标签   主要内容 web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 HTML规范 HTML结构详解 一.web标准 web准备介绍: w3c:万维网联 ...

  7. 【原创】开源Math.NET基础数学类库使用(01)综合介绍

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  8. Swift开发学习-01 Swift介绍

    本教程是笔者在自学IOS/Swift知识的总结,适用于通过对Objictive C编程的运用并需要了解基于iOS程序的iPhone和iPad的程序员.做一个有bigger的’攻城狮‘,有尊严的工作,快 ...

  9. oc语言学习之基础知识点介绍(一):OC介绍

      一.第一个OC程序 #import <Foundation/Foundation.h> //导入头文件 int main(int argc, const char * argv[]) ...

  10. 01 (OC)* @property 后面可以有哪些修饰符?

    一:@property 后面可以有哪些修饰符? 1:线程安全的: atomic,nonatomic 2:访问权限的 readonly,readwrite 3:内存管理(ARC) assign, cop ...

随机推荐

  1. 页面布局之BFC 微微有点坑

    一.什么是BFC: 在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说 ...

  2. 网站压力测试工具之WebBench

    1 Web Bench简介 WebBench是有名的网站压力测试工具,由Lionbridge公司开发,最多可以模拟3万个并发连接去测试网站的负载能力. Webbech能测试处在相同硬件上,不同服务的性 ...

  3. js触屏事件

    js的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend.这三个事件最重要的属性是 pageX和 pageY,表示X,Y坐标. touchstart在触摸开始 ...

  4. 第四节 Code 39 码 / 三九码

    39码是西元1974年发展出来的条码系统,是一种可供使用者双向扫瞄的分散式条码,也就是说相临两资料码之间,必须包含一个不具任何意义的空白(或细白,其逻辑值为0),且其具有支援文数字的能力,故应用较一般 ...

  5. 设计模式总结5--命令模式 commend pattern

    命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象.就像我们去餐厅,点菜是找服务员,然后服务员去让厨师做菜而不是我们直接找厨师做菜 public interface Commend { ...

  6. Lync 2010升级到Lync 2013POC计划-过程!

    最近在协助一家客户做升级项目调研,目前处在POC过程中,根据他们的需求我们将整个POC过程用Project 进行了下整理,了解整个项目中可能存在的风险和相应的计划过程,根据相应的计划我们能够将相应过程 ...

  7. MFC中SDI程序创建流程的回顾

    SDI程序创建流程的回顾 从CWinApp.InitialInstance()开始, 1.首先应用程序对象创建文档模板; CSingleDocTemplate* pDocTemplate; pDocT ...

  8. Objective-C中的类目(Category),延展(Extension)

    类目和延展的作用都是为了扩展一个类. Objective-C中的类目(Category) 一.类目的定义和作用 类目也叫分类,英文Category,在没有原类.m文件的基础上,给该类添加方法. 比如, ...

  9. Python模拟登陆

    模拟人人登陆 #encoding=utf-8 import urllib2 import urllib import cookielib def renrenBrower(url,user,passw ...

  10. 同时支持多家云平台的管理工具HybridFox

    偶然间发现了这个firefox上的开元插件 号称支持AWS,Eucalyptus,OpenStack,OpenNebula 目的是通过一个入口实现异种云平台的管理 主要功能包括: Manage Ima ...