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中声明了两 ...
随机推荐
- 苹果iOS手机暗藏间谍软件的揭秘者:扎徳尔斯基
大家知道,苹果iOS手机的短消息server(SMS)是用硬件加密的,看起来非常安全.可是,Jonathan Zdziarski发现苹果公司有意地放进去一个"文件转发server" ...
- swift 3.0基本数据语法
swift 3.0 字符串的介绍 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符 ...
- C 语言指针怎么理解?
对于程序员来说内存可以简化成这样一种东西:<img src="https://pic1.zhimg.com/4d060c3f67c22cd4b07273db00f64708_b ...
- C# Socket基础(一)之启动异步服务监听
本文主要是以代码为主..NET技术交流群 199281001 .欢迎加入. //通知一个或多个正在等待的线程已发生事件. ManualResetEvent manager = new ManualRe ...
- MySQL · 特性分析 · 内部临时表
http://mysql.taobao.org/monthly/2016/06/07/#rd MySQL中的两种临时表 外部临时表 通过CREATE TEMPORARY TABLE 创建的临时表,这种 ...
- Win7 IE故障:APPCRASH,d3d9.dll,c0000005
问题: 今天使用使用IE登录某网址,发现总是报错,如下图,无法浏览. 解决方案: 主要讲IE的呈现方案修改即可,如下步骤: 在IE的[Intern ...
- 错误“Unexpected namespace prefix "xmlns" found for tag LinearLayout”的解决方法
编写布局代码时发现xml脚本出现错误“Unexpected namespace prefix "xmlns" found for tag LinearLayout”,原来是一个na ...
- 在C#中利用SharpZipLib进行文件的压缩和解压缩收藏
我在做项目的时候需要将文件进行压缩和解压缩,于是就从http://www.icsharpcode.net(http://www.icsharpcode.net/OpenSource/SharpZipL ...
- ScrollView嵌套ListView的滑动冲突问题,是看大神的方法的,作为学习以后用的到
在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...
- [Java] 遍历HashMap和HashMap转换成List的两种方式
遍历HashMap和HashMap转换成List /** * convert the map to the list(1) */ public static void main(String[] ...