iOS学习笔记--OC系列(1)
前言
从学校毕业进入公司工作已经第3个年头了,回顾这3年的经历,有种迷茫的感觉。在公司我主要是做零售业公司的系统维护,接触的主要是Oracle的Database的东西。但是业务知识和oracle,都没怎么学好。感到虚度光阴的同时,我感觉到了危机感。所以给自己定了一个目标”学好iOS和Oracle Database“。为什么学iOS呢?那是因为身为一个苹果迷,非常喜欢苹果的产品,希望拥有自己开发的App。Oracle Database是工作中能经常接触的,希望更上一层楼。
为了记录自己的学习经历,昨天在博客园里申请了博客。希望在分享学习经历的同时,更能得到各路牛人的指点。
Objective-C(1)
网上看过好多iOS的学习经验分享,大致都都是C语言->OC->UI->App的流程。大学的时候上过C语言的课,所有我就直接从OC开始学习了。OC学习方法主要是看视频和看书。然后自己的学习规则是敲边能看到的每条代码。
头文件
每段代码都是从头文件开始的。用C写Hello world!的时候,头文件是下面这么写的。为了使用printf()这样自带的函数,头文件的导入是必须的
#include <stdio.h>
OC中也有printf()一样功能的函数,OC版的打印函数是NSLog(),同样为了使用它,代码需要导入下面头文件
#import <Foundation/Foundation.h>
include和import的最大区别是光使用include导入自定义文件时,有可能产生重复导入同一个头文件的情况。而在使用import的时候是不需要担心这个问题。自己防止文件的内容被重复拷贝
类和对象
类 :对象的描述。把具有相同或者相似特征和行为的对象抽象化成类,例:人(长腿男人,漂亮女人,说外星语的火星人都可以抽象成人)
对象:类的实例化。OC中要想创建对象,首先必须要有类。例:身高1.75m(特征),会做饭(行为)的男(特征)人
类的创建
用Xcode创建类的时候,会出现2个文件.h文件和.m文件。
- .h文件 :类的声明文件
- .m文件:类的实现文件
类的声明
这个文件(.h)内需要定义类的名字,类的属性和类的行为(方法)。例:
@interface Person : NSObject
{
int nationality;//属性
}
- (void)speek;//(返回值)方法名
@end
- 类的名字:Person
- 类的属性:nationality
- 类的行为:speek
类的实现
这个文件(.m)内需要写具体怎么实现类的方法。例:
#import "Person.h"
@implementation Person
- (void)speek
{
NSLog(@"我会说日语");
}
@end
这里写的就是speek方法的具体实现。例子里面speek方法就是打印“我会说日语”。
总结
这回主要学习了类的创建,类和方法这些概念是C语言里没有的。方法的声明和定义虽然跟C语言里的函数很相似,有返回值,有函数名,但是具体的用法不同。下回继续深入类和方法使用的学习。
iOS学习笔记--OC系列(1)的更多相关文章
- iOS学习笔记---oc语言第五天
字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key- ...
- iOS学习笔记---oc语言第四天
字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Avai ...
- iOS学习笔记---oc语言第三天
继承.初始化方法 一.继承 继承的上层:父类 继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量 ...
- iOS学习笔记---oc语言第一天
第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++ java ...
- iOS学习笔记---oc语言第九天
初级内存管理 iOS应用程序出现crash(闪退),90%以上是内存问题////其他:数组越界,方法只声明没实现 内存问题体现在两个方面:内存溢出\野指针异常 内存溢出:程序运行超出内存上限 野指针异 ...
- iOS学习笔记---oc语言第六天
Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语⾔中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函 ...
- iOS学习笔记---oc语言第二天
实例变量与方法 一.实例变量的可见度 二.方法 oc中的方法分两种:类方法和实例方法 类方法:只能类使用 eg:+ (id)alloc 注:类方法中不能使用实例变量 实例方法:只能对象使用,eg:- ...
- iOS学习笔记---oc语言第十天
内存管理高级 一 属性的内部实现原理 assign retain copy assign 下的属性内部实现 setter方法 @property(nonatomic,assign)NSS ...
- iOS学习笔记---oc语言第八天
属性 能在一定程度上简化代码,并且增强实例变量的访问安全性 属性的声明:使用@property声明属性 eg:@property NSSstring *name;相当于@interface中声明了两 ...
随机推荐
- Codeforces Round #311 (Div. 2) D. Vitaly and Cycle 图论
D. Vitaly and Cycle Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/p ...
- GLSL实现Image Filter 【转】
http://blog.csdn.net/a3070173/archive/2008/11/27/3390477.aspx 图像过滤无论是在作图工具还是特效的实现上都时有运用,这里发一些通常会使用到的 ...
- 剑指 offer set 9 包含min函数的栈
总结 1. 要求栈的 push, pop, min 都是 o(1). 普通栈支持 Push Pop 操作, 且时间复杂度已为 o(1), 再加上 Min 函数, 时间复杂度已无法优化, 只能通过加空间 ...
- pthread_mutex_t
在Linux中使用线程 http://blog.csdn.net/jiajun2001/article/details/12624923 :LINUX就是这个范围作者 原创作品,允许转载,转载时 ...
- error C2440:“类型转换":无法从“void (__thiscall Play1::* )(int *)”转换为“cocos2d::SEL_CallFucN
转自:http://zhidao.baidu.com/link?url=VfSSkA0xfTVwNKaKh4tqW_sXlcsK-Rb16nEtQw5zaq5_306lnwJN3Kdb-rFp-r4L ...
- 错误“Unexpected namespace prefix "xmlns" found for tag LinearLayout”的解决方法
编写布局代码时发现xml脚本出现错误“Unexpected namespace prefix "xmlns" found for tag LinearLayout”,原来是一个na ...
- Masonry 布局 cell 高度适应的一种方案(实现类似朋友圈简单布局)
来源:伯乐在线 - 夏天然后 链接:http://ios.jobbole.com/89298/ 点击 → 申请加入伯乐在线专栏作者 前言: 我模仿的是微博的布局所以也就没有 评论动态刷新cell. 1 ...
- Localizing WPF with .resx files
WPF用Resource.resX中的字符串进行国际化 增加命名空间 xmlns:prop="clr-namespace:XXAppName.Properties" 引用的地方的格 ...
- CALayer实现点击屏幕放大或者缩小的一个圆
#import "ViewController.h" #define WIDTH 50 @interface ViewController () @end @implementat ...
- Tested work with China Digiprog 3 4.94 mileage programmer
I was thinking about buying a Digiprog3 clone from China I know that YANHUA Digiprog 3 is the best a ...