前言

从学校毕业进入公司工作已经第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)的更多相关文章

  1. iOS学习笔记---oc语言第五天

    字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key- ...

  2. iOS学习笔记---oc语言第四天

    字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Avai ...

  3. iOS学习笔记---oc语言第三天

    继承.初始化方法 一.继承 继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量 ...

  4. iOS学习笔记---oc语言第一天

    第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++  java   ...

  5. iOS学习笔记---oc语言第九天

    初级内存管理 iOS应用程序出现crash(闪退),90%以上是内存问题////其他:数组越界,方法只声明没实现 内存问题体现在两个方面:内存溢出\野指针异常 内存溢出:程序运行超出内存上限 野指针异 ...

  6. iOS学习笔记---oc语言第六天

    Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语⾔中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函 ...

  7. iOS学习笔记---oc语言第二天

    实例变量与方法 一.实例变量的可见度 二.方法 oc中的方法分两种:类方法和实例方法 类方法:只能类使用 eg:+ (id)alloc  注:类方法中不能使用实例变量 实例方法:只能对象使用,eg:- ...

  8. iOS学习笔记---oc语言第十天

    内存管理高级 一 属性的内部实现原理   assign   retain    copy assign 下的属性内部实现 setter方法 @property(nonatomic,assign)NSS ...

  9. iOS学习笔记---oc语言第八天

    属性 能在一定程度上简化代码,并且增强实例变量的访问安全性 属性的声明:使用@property声明属性  eg:@property NSSstring *name;相当于@interface中声明了两 ...

随机推荐

  1. 我的CMS心路历程,DNN And Umbraco

    在比较了众多CMS系统后,还是把焦点定在DNN和Umbraco两个系统上,这两个系统都可以使用UserControl扩展自己需要的功能. DNN的架构比较复杂,Module.Skin.Containe ...

  2. Gridview中绑定DropDownList

    1.页面代码                         <asp:TemplateField HeaderText="等级">                   ...

  3. Oracle中关于清除数据和释放表空间

    一.表的重命名 flashback table test2 to before drop rename to test3;--[to test3]将表重命名 drop table test3 purg ...

  4. linux服务器之redis

    linux环境下安装redis服务器: redis下载地址:http://redis.io/download $ wget http://download.redis.io/releases/redi ...

  5. LOVE代码收集

    Love的截图函数 1 function love.load() love.filesystem.setIdentity("test") end function love.dra ...

  6. 使用NuGet加载包,发现加载的dll都是最新版,原来少加了参数[-Version]

    使用NuGet获取AutoMapper 发现无法正确加载包,项目版本是3.5,获取的dll版本较高,查资料发现可以通过 “-Version” 指定加载包版本 http://www.mamicode.c ...

  7. C#面向对象(四)虚方法实现多态

    一.虚方法实现多态 1,创建一个people基类 using System; using System.Collections.Generic; using System.Linq; using Sy ...

  8. Redis缓存异常的容错实现方法( .net)

    using DotNet.Log; /// <summary> /// Redis缓存辅助类 /// /// 修改纪录 /// /// 2015-10-26 版本:1.0 SongBiao ...

  9. 经典FormsAuthenticationTicket 分析

    Asp.net中基于Forms验证的角色验证授权 Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多, ...

  10. 【Mood-5】14条建议,使你的IT职业生涯更上一层楼

    升值为企业IT部门的领导者,并非一件易事.从一般大众中脱颖而出,则更不容易. 2013是一个好年头,据专家报告显示,6月所有新工作中,10%来自技术领域.这对于那些希望高升.换岗.跳槽的IT技术人员来 ...