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中声明了两 ...
随机推荐
- Docker:使用Ambassador进行跨主机间容器通信
转载请注明出处:点我 由于Docker自身的网络的原因,想要在多主机间的容器之间进行通信是比较麻烦的事情.可以利用Ambassador容器来实现这一功能. 基本原理: 利用Ambassador来实现主 ...
- OS_TASK.C
/*************************************************************************************************** ...
- [CSS3 Animation] TweenMax.staggerTo()
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- poj 3660 Cow Contest(传递闭包 Floyd)
链接:poj 3660 题意:给定n头牛,以及某些牛之间的强弱关系.按强弱排序.求能确定名次的牛的数量 思路:对于某头牛,若比它强和比它弱的牛的数量为 n-1,则他的名次能够确定 #include&l ...
- 利用URLScan工具过滤URL中的特殊字符(仅针对IIS6)
客户公司搞安全检查,扫描出来我们之前做的系统有一个高危漏洞:IIS tilde directory enumeration,也就是利用“~”字符猜解暴露短文件/文件夹名,比如,采用这种方式构造URL: ...
- LINUX 内存结构
1.页框管理 Linux采用4KB页框大小作为标准的内存分配单元.内核必须记录每个页框的状态,这种状态信息保存在一个类型为page的页描述符中,所有的页描述存放在mem_map中.virt_to_pa ...
- QT 操作oracle数据库遇到的问题
一.首先参考官方文档: http://qt-project.org/doc/qt-4.8/sql-driver.html#qoci 二.编译驱动: http://www.tuicool.com/art ...
- 分享十个CSS3鼠标滑过文字动画特效
介绍10组基于CSS3的鼠标滑过文字动画特效,有上凸.下凹等文字动画.这些炫酷的CSS3文字效果可以让网页变得更加绚丽.效果图如下: 在线预览 源码下载 实现的代码. html代码: <h2 ...
- 用 Gearman 分发 PHP 应用程序的工作负载
尽管一个 Web 应用程序的大部分内容都与表示有关,但它的价值与竞争优势却可能体现在若干专有服务或算法方面.如果这类处理过于复杂或拖沓,最好是进行异步执行,以免 Web 服务器对传入的请求没有响应.实 ...
- LeetCode46,47 Permutations, Permutations II
题目: LeetCode46 I Given a collection of distinct numbers, return all possible permutations. (Medium) ...