Objective-C入门
厂长最近又有新计划,准备做iOS上的开发,要操作工们(其实就是我自己)学习Objective-C,准备为厂子下一步的发展做出巨大贡献。拿人钱财,替人消灾,又得花时间折腾一门语言。话说自从来到现车间,用过C、C++、C#、Python,还写过几句PHP、ASP,刚开始Linux和AIX平台,后来接手Windows平台,可谓万能的螺丝钉,哪里需要就往哪里插。可悲的是无一样称得上精通。
闲话少说,开始正题。本篇博客意在给有一些经验的C\C++新手做个Objective-C语法的简介,内容只是Objective独特的地方,至于继承、重写等基本概念和C++是类似的,想要深入学习,还是得巨资买苹果产品亲身实践,本人也是仅仅看了几页书,纸上谈兵而已。
Objective-C属于C的超集,所以基本的控制结构啊啥的都和C差不多,主要是涉及到面向对象的一些概念,Objective-C有自己独立的一套东西。
文件类型
Objective-C的文件类型的设计和C++差不多,也分为头文件和源文件,头文件(以.h结尾)中包含类的定义,而源文件(以.m结尾)中则包含类中函数的实现。同时项目中还可以包含C\C++\Perl等代码文件。
类的定义
// .h文件
#import <Foundation/Foundation.h> @interface People: NSObject
{
int sex;
} -(int) sex;
-(void) setSex:(int) s; @end
// .m文件
@implementation People
-(int) sex
{
return sex
} -(void) setSex:(int) s
{
sex = s;
}
@end
上面对于成员变量sex的操作可以使用accessor methods实现,其本质上就是让编译器来帮你实现这些函数,减少工作量。
### Synthesized Accessor Methods ###
// .h文件
#import <Foundation/Foundation.h> @interface People: NSObject @property int sex; @end // .m文件
@implementation People
@synthesize sex;
@end
### 类的继承 ###
@class ParentClass //前置声明
@interface ChildClass: ParentClass
@end
### Category的使用 ###
// category.h
#import "People.h"
@interface People (LiveOps)
-(void) love: (People *) p;
-(void) think;
-(void) die;
@end // category.m
@implementaion People (LiveOps)
-(void) love: (People *) p
{
} -(void) think
{
} -(void) die
{
}
@end
### Protocol的使用 ###
// .h文件
@protocol Living
-(void) think;
-(void) love;
@optional
-(void) getMarried;
@end
category和protocol是有差别的。使用category的目的是在不修改原有类的前提下,为该类添加新功能,而且category中的函数不必全部实现,而protocol是提前约定好接口,虽然protocol中函数也可以可选实现,但是需要使用optional声明。
除此之外,C中的enum、struct、typedef、define等在Objective-C中都是可用的
今天就扯这些,收工休息
Objective-C入门的更多相关文章
- [转] 从 C 到 Objective C 入门1
转自: http://blog.liuhongwei.cn/iphone/objective-c/ 进军iPhone开发,最大的难点之一就是怪异的Objective C语法了.不过,了解之后才发现,原 ...
- KVC的用法
示例1:基本赋值取值 @interface Book : NSObject { NString *name;}@end #import "Book.h"@implement ...
- Automake
Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...
- Objective C 快速入门学习一
Objective-C程序设计 1. 直接用Xcode作为IDE,舍弃gcc编译方面的学习.2. 入门例子:Eg:打印Hello World 控制台程序 #import<Foundation/F ...
- Objective C 快速入门学习五
<一>继承和多态 @class Complex 声明类(同C++) 子类函数成员 super 访问父类 同C++类似 .通过继承 在子类中添加新方法 .通过继承 在子类中添加新成员 .通过 ...
- Objective C 快速入门学习四
类 1.合成存取器方法 @property 成员变量 @synthesize 成员变量 可以让编译器自动合成 设置和获取函数的方法,不用手动生成set成员变量,Get成员变量 @interface ...
- Objective C 快速入门学习三
1.数据类型 和C语言基本一样. 有一个特别数据类型id,可以储存任何类型的对象,它是实现多态和动态绑定的基础. Objective-C 2.程序结构 Objective-C和C的程序结构一模一样,具 ...
- Objective C 快速入门学习二
Objective-C 类.对象.方法 1.编写一个复数类: #import <Foundation/Foundation.h>@interface Complex: NSObject / ...
- 4 字符串 Swift/Objective -C ——《Swift3.0从入门到出家》
4 字符串 Swift and Object-C 字符串由多个字符组成,使用 “” 引起的内容 swift语言中提供了两种字符串:可变字符串和不可变字符串 可变字符串:字符串的内容可以修改,字符串 ...
- iOS 开发-- Runtime 1小时入门教程
1小时让你知道什么是Objective-C Runtime,并对它有一定的基本了解,可以在开发过程中运用自如. 三.Objective-C Runtime到底是什么东西? 简而言之,Objective ...
随机推荐
- JStrom的zk数据
/jstorm/masterlock 用于LeaderSelector的锁. /jstorm/master get /jstorm/master localhost.localdomain:7627 ...
- c++学习笔记——智能指针
智能指针是为了便于管理动态内存,能够自动管理释放所指向的对象. 智能指针共有三种:1.shared_ptr允许多个指针指向同一个对象:2.unique_ptr独占所指向的对象:3.weak_ptr是一 ...
- Java 在某一个时间点定时执行任务(转载)
java定时任务,每天定时执行任务.以下是这个例子的全部代码. public class TimerManager { //时间间隔 private static final long PERIOD_ ...
- OpenShift:外国的免费云平台
二.安装openshift客户端 对于怎么安装openshift客户端,我就不说了,网上有很多教程,连官网也有他自己的教程. 官网教程:https://developers.openshift.com ...
- Spring MVC开发环境的搭建和实例
一.安装jdk 二.安装tomcat 三.安装maven 新增环境变量MAVEN-HOME,并在path变量中添加bin路径 四.安装IntelliJ IDEA 五.创建maven web项目选择jd ...
- Abstract Factory(抽象工厂)模式
1.意图 提供一个创建一系列相关或相互依赖对象的接口,而无需制定它们具体的类. 2.适用性 一个系统要独立于它的产品创建.组合和表示时. 一个系统要由多个产品系列中的一个来配置时. 当你强调一系列相关 ...
- media type的类型汇总
用的比较多的是screen和print:区分打印和屏幕显示(Android,iPhone都不是手持设备handheld,都是screen设备)
- Daily Scrum 12.2
今日完成任务: 完成数据库文档说明:整理数据库(没整理完),明天继续:文档功能的修改以及在服务器上测试 明日任务: 黎柱金 整理数据库 孙思权 整理数据库 晏旭瑞 文档上传下载功能 冯飘飘 修复问题提 ...
- linux笔记-硬链接和符号链接
硬链接:指多个路径名(不同目录下的不同文件名)指向同一个硬盘数据,用其中的随便哪个文件打开修改数据,都会在其他文件打开中更新, 原因就是硬链接和“原”文件inode相同,每增加或者删除一个链接,链接计 ...
- WebService 调用
一.WebService调用 1.webservice支持四种调用方式:SOAP 1.1,SOAP 1.2,GET,POST. 2.如果要webservice支持GET,POST调 ...