分享

Object

 quasiceo 2015-01-28

随笔分类 -Object-C

Object C学习笔记26-文件管理(二)

2014-05-03 09:16 by 贺臣, 860 阅读, 收藏, 编辑
上一篇简单的介绍了如何获取文件属性,删除,拷贝文件等,本文继续记录Object C中文件IO操作。 一. 获取文件的执行主目录 在Object C中提供了一个方法NSHomeDirectory() 用于获得执行执行的主目录,使用如下代码测试:NSString *homePath=NSHo...

Object C学习笔记25-文件管理(一)

2014-05-02 23:46 by 贺臣, 634 阅读, 收藏, 编辑
在此篇文章中简单记录一下文件管理,在Object C中NSFileManager用于管理文件已经路径。在Object C中的文件路径可以是相对路径也可以是绝对路径。斜线“/”开头,斜线实际上就是一个目录,称为 根目录。字符(~)用作用户主目录的缩写。点“ . ”表示当前目录,两点“ .. ”表示...

Object C学习笔记24-关键字总结

2014-04-07 11:35 by 贺臣, 801 阅读, 收藏, 编辑
学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法。 1. #import #import 从system目录中查找头文件,不会检查当前目录。 #import "" 首先在当前目录中查找,如果未找到,则在Xcode设置的预处理程序搜索路径中查找文件。 #import 指令可以防止头文件被重复包含 2. typedef 用于给一个类型定义新名称 或 简化较为复杂的类型声明,可以参考文章 3.#define 用于宏定义预处理,可以参考文章 4. 定义类 *.h 用于定义类的...

Object C学习笔记23-继承,重写,重载

2014-04-05 15:35 by 贺臣, 980 阅读, 收藏, 编辑
前面的学习都一直在使用Object C对象,但是没有具体总结过Object C中的对象使用特性,这里简单总结一下。 一. 继承 在面向对象编程中,子类可以通过继承得到父类的可以继承的的属性和方法,在Object C中也同样如此。 先定义一个Person类,并且定义几个属性和一个方法:#import @interface Person : NSObject{ NSString *name; int age; NSArray *itmes;}@property (nonatomic,retain) NSString *name;@property (nonato...

Object C学习笔记22-#define 用法

2014-04-03 22:18 by 贺臣, 710 阅读, 收藏, 编辑
上一篇讲到了typedef 关键字的使用,可以参考文章 Object C 学习笔记--typedef用法。而在c中还有另外一个很重要的关键字#define. 一. #define 简介 在C中利用预处理代码,可以让你的代码变得更加具有可读性,更加符合个人的编码风格,这也是C的强大之处。#define可以实现代码的预处理,代码在编译之前会被提前处理。 二. 常量处理 语法: #define 常量名 产量值 #define声明主要用于将常量(或字符串)赋予有意义的名字,这个和.NET中的常量const比较的类似。#import #define NAME "abc"int ...

Object C学习笔记21-typedef用法

2014-04-03 17:58 by 贺臣, 531 阅读, 收藏, 编辑
在上一章的学习过程中遇到了一个关键字typedef,这个关键字是C语言中的关键字,因为Object C是C的扩展同样也是支持typedef的。 一. 基本作用 typedef是C中的关键字,它的主要作用是给一个数据类型定义一个新的名称,这些类型报告内部数据类型,比如int,char 还有自定义类型struct,enum等。 typedef一般有两个作用:(1) 给某种类型顶一个定义比较容易记的名字,相当于别名;(2)简化较为复杂的类型声明。 二. typedef的使用 1. 定义新类型 语法:typedef 类型 新类型#import typedef int...

Object C学习笔记20-结构体

2014-03-26 22:16 by 贺臣, 550 阅读, 收藏, 编辑
在学习Object C中的过程中,关于struct的资料貌似非常少,查阅了C方面的资料总结了一些学习心得! 一. 定义结构 结构体是一种数据类型的组合和数据抽象。结构体的定义语法如下: struct 结构体名称 { 类型 变量名; 类型 变量名; } 实例代码如下:struct student { char* name; enum sex sex; int age;};结构体的定义 上面代码定义了一个结构体student,其中有三个变量name,sex,age ,其中sex是一个枚举。student是一个标识符,也...

Object C学习笔记19-枚举

2014-03-23 21:09 by 贺臣, 554 阅读, 收藏, 编辑
一. 枚举类型 枚举类型是一个基本类型,不能再分为为任何其他的类型。在一般的编程语言中都有枚举(enum)这种数据结构类型。枚举类型主要用于将一个变量限定在特定的范围内。比如一周有七天,那么一周的值就限定在了七个值内。 二. 枚举的定义 enum 枚举名称 { 枚举值列表 } 案例1:enum Body{AB,CD,EF,HG}; 测试枚举值代码: enum Body a,b,c,d; a=AB; b=CD; c=EF; d=HG; NSLog(@"%d",a); N...

Object C学习笔记18-SEL,@ selector,Class,@class

2014-03-22 23:00 by 贺臣, 642 阅读, 收藏, 编辑
本章是对上一章>的一点补充,所以比较简单点。 一. SEL 类型 在上一篇介绍了几个方法,都只是介绍了其使用方式但是没有具体介绍参数:- (id)performSelector:(SEL)aSelector;- (id)performSelector:(SEL)aSelector withObject:(id)object;- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;- (BOOL)respondsToSelector:(SEL)aSelector; 其中...

Object C学习笔记17-动态判断和选择器

2014-03-22 21:29 by 贺臣, 941 阅读, 收藏, 编辑
当时学习Object C的时被人鄙视了一顿,说使用.NET的思想来学Object C就是狗屎;不过也挺感谢这位仁兄的,这让我学习的时候更加的谨慎。今天的学习笔记主要记录Object C中的动态类型相关内容。 首先还是和.NET先对比一下,.NET中存在一个关键字var ,这个估计用过.NET的都知道,除非没有接触过3.0以上版本的。在.NET中能够使用var来声明任何类型的局部变量,负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量.但是这里要注意的时var 并不是一个新的类型,只是一个关键字而已,在定义参数和返回值的时候都不能使用var. 在.net中还有...

Object C学习笔记16-委托(delegate)

2014-03-22 07:27 by 贺臣, 1779 阅读, 收藏, 编辑
在.NET中都知道委托(delegate),通俗点的解释就是可以将方法作为一个参数传到另外一个方法中使用。 委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。在Object C中也同样存在委托的概念,但是委托一般与协议(Protocol)同时使用,而且和.NET中的委托稍有区别 一. 定义委托(delegate)先定义一个协议(Protocol) 回顾一下上一篇所学的,先定义一个协议(Protocol)ProtocolName, 协议ProtocolName中定义了两个方法: first ,s...

Object C学习笔记15-协议(protocol)

2014-03-21 17:41 by 贺臣, 1482 阅读, 收藏, 编辑
在.NET中有接口的概念,接口主要用于定义规范,定义一个接口关键字使用interface。而在Object C 中@interface是用于定义一个类的,这个和.NET中有点差别。在Object C中有一个协议(protocol) 的概念,这个和.NET中的interface类似。 协议(Protocol) 在列出的方法在本类中并没有相应实现,而是别的类来实现这些方法,而定义协议必须使用protocol关键字。 一. 如何定义protocol的定义 如何使用XCode新建一个协议.h 文件定义协议代码如下:#import @protocol ProtocolCom @requir...

Object C学习笔记14-分类(category)

2014-03-17 21:48 by 贺臣, 680 阅读, 收藏, 编辑
在.NET中有一个非常带劲的特性,那就是扩展方法.扩展方法使你能够向现有类型“添加”方法(包括你自定义的类型和对象噢),而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但是可以像扩展类型上的实例方法一样进行调用。 先看看.NET中扩展方法的定义和使用 public static class test { public static bool In(this object o, IEnumerable c) { foreach (object obj in c) ...

Object C学习笔记13-Dictionary字典

2014-03-09 22:07 by 贺臣, 1291 阅读, 收藏, 编辑
通过Array数组和Set集合的学习和理解,可以想象得到Dictionary也分为两种情况了,那就是可变和不可变两种类型的。的确如此,在Object C中提供了两个字典类,分别为NSDictionary 和 NSMutableDictionary. 在.NET中我们也学习过Dictionary类,这个集合的存储方式是键值对的方式存储的。而且使用Dictionary查找元素也极为简单。 一 NSDictionary 不可变字典 (1) 初始化字典NSDictionary *dic=[NSDictionary dictionaryWithObject:@"hechen" for

Object C学习笔记12-集合

2014-03-08 17:25 by 贺臣, 786 阅读, 收藏, 编辑
这里讲到的集合是指Set集合,其实Array也是一种类型的集合。在Object C中提供了两个集合类NSSet和NSMutableSet。其实NSSet和NSArray性质一样,都是用于存储对象的。 然而Array集合和Set集合还是有区别的,主要是在于Set集合的搜索速度要比Array速度要快,NSArray和NSMutableArray 是一种有序集合,其存储的值在内存中是连续的,而NSSet和NSMutableSet是无需集合,在内存中的存储方式是不连续的,在NSSet,NSMutableSet采用了hash算法,你懂的! 一. NSSet集合 刚才上面也简单的介绍了一...

Object C学习笔记11-数组

2014-03-07 21:43 by 贺臣, 1771 阅读, 收藏, 编辑
在Object C也提供了类似C#中的Array数组对象,在Object C中使用NSArray 来创建数组;但是在Object C中NSArray 只能存放对象类型的指针,不能存放int,char,double等基本数据类型。 一. 不可变数组对象 这个和之前的NSString有些类似,NSArray 能够创建不可变的数组对象。一旦初始化这个对象就不能动态的修改和增加这个数组。 (1)使用arrayWithObjects来初始化数组内容,参考如下代码:NSArray *items=[NSArray arrayWithObjects:@"abc",@"cdf&qu

Object C学习笔记10-静态方法和静态属性

2014-02-15 22:31 by 贺臣, 1512 阅读, 收藏, 编辑
在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此。在Object C中也存在static关键字,今天的学习过程使用到了这个关键字,在这里记录一下static的使用。 在Object C的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中。不过可以调用这个类的方法间接的修改这个静态变量的值。对于Object C中的类使用和定义在前面已经做过相应的记录,可以查看Object C学习笔记3-对象的使用和定义。 1. 静态属性 Object...

Object C学习笔记9-字符串NSMutableString

2014-02-15 13:11 by 贺臣, 752 阅读, 收藏, 编辑
NSMutableString类继承自NSString,所以在NSString中的方法在NSMutableString都可以使用. NSMutableString和NSString的区别在于NSMutableString是动态的字符串,可以动态的添加,修改,删除等。在前面提到了就和.NET中的string和StringBuilder的区别一样。 1. 添加字符串 向字符串末尾添加字符串可以使用appendString方法和appendFormat方法。appendString方法主要用于向字符串末尾添加一个字符串;appendFormat 方法用于向字符串末尾添加多种类型的字符串,相当...

Object C学习笔记8-字符串NSString之二

2014-02-14 21:57 by 贺臣, 906 阅读, 收藏, 编辑
5. 字符串是否包含 hasPrefix 判断字符串是否以某个字符串开头 hasSuffix 判断字符串是否以某个字符串结尾 NSString *str1=@"Object C学习正在进行中.... LOVE"; if([str1 hasPrefix:@"Object"]){ NSLog(@"字符串:%@是以%@开头",str1,@"Object"); } if([str1 hasSuffix:@"LOVE"]){ NSLog(@"字符串:%@是以%@结尾",str1,@..

Object C学习笔记7-字符串NSString之一

2014-02-13 22:42 by 贺臣, 1663 阅读, 收藏, 编辑
在Object C中存在两个类用于操作字符串,NSString和NSMutableString;NSString在赋值之后不能修改其内容和长度,而NSMutableString可以动态的修改字符串内容和长度,其主要区别就和.NET 中的string与StringBuilder之间的区别。 1. 定义NSString字符串 在Object C中NSString是一个对象类型,其有多种定义方式:NSString *str1=@"令狐聪"; NSString *str2=[NSString stringWithFormat:@"名称: %@ 性别:%s 年龄...

Object C学习笔记6-如何在Windows环境搭建Object C开发环境

2014-02-11 14:44 by 贺臣, 3031 阅读, 收藏, 编辑
1. 安装编译环境 Object C和其他很多语言一样,都需要有一个编译器。Object C 是在GCC下编译的。GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器。很多人想到学习Object C就想到mac电脑,想到XCode开发工具。其实在Windows环境一下也可以编译Object C。 首先下载Windows版本的GCC编译器,下载地址:http://wwwmain./resources/downloads.php 下载如下几个包: gnustep-system-0.23....

Object C学习笔记5-ARC forbids explicit message* 编译错误

2014-01-26 16:00 by 贺臣, 288 阅读, 收藏, 编辑
在学习Object C的过程中XCode 编译器经常出现 "ARC forbids explicit message send of release" 的错误提示。 以上问题主要出现在release,retain 等操作的时候,这是因为你在新建工程的时候使用ARC功能.我们只需要Build Setting中设置如下: 打开“Build Setting”,找到“Objective-C Automatic Reference Counting”项,将它的值设置成“NO” 截图操作如下:

Object C学习笔记4-内存管理

2014-01-24 16:56 by 贺臣, 1182 阅读, 收藏, 编辑
Object-C的内存管理和.NET有些不一样,.NET的内存回收机制是使用GC自动处理回收,而Object-C本质上还是C语言,所以很多时候还是需要手动去管理内存回收。 1. Object-C生成一个对象 Engine *en=[[Engine alloc] init]; [en dealloc]; Object-C对象生成分配空间在堆上,需要使用指针来指向其引用。前面也说到了,Object-C中得对象其实就是C中的指针。 2. 对象初始化以及销毁方法 +(id) alloc; 注意这里的alloc是一个类方法,调用alloc方法之后会在内存中分配一块空间,并...

Object C学习笔记3-对象的使用和定义

2014-01-24 09:56 by 贺臣, 1440 阅读, 收藏, 编辑
1. 如何定义一个对象 在面向对象的语言中,定义一个对象是使用Class关键字,而在Object-C中则是使用@interface,@interface用于定义对象的属性和方法,@implementation则用于对象的详细描述。@interface放在.h文件中,而@implementation放在.m的文件中。Object-C中的对象和java,.NET中的对象还是有区别的,其实它更加像C中的指针。 首先我们定义一个@interface 的对象,代码如下#import @interface Engine : NSObject{ int age; NSString* na...

Object C学习笔记2-NSLog 格式化输出数据

2014-01-18 08:21 by 贺臣, 2384 阅读, 收藏, 编辑
1 . 几种常用类型变量声明 inti=10; BOOLisShow=YES; BOOLisShow=1; floatf=3.1415926; chara=120; NSString*name=@"Himi"; object-c中BOOL类型长度1byte, 若将short或int型数赋值给BOOL类型则截取低位1个字节. object-c 中字符串类型的声明和java,C# 有点不一样,string 在面向对象语言中是一个引用类型,在object-c中是使用指针。 2. NSLog常用的几种输出 NSAutorelease...

Object C学习笔记1-基本数据类型说明

2014-01-17 23:18 by 贺臣, 869 阅读, 收藏, 编辑
Objective-C数据类型可以分为:基本数据类型、对象类型和id类型。基本数据类型有:int、float、double和char类型。对象类型就是类或协议所声明的指针类型,例如:NSAutoreleasePool * pool,其中NSAutoreleasePool是一个类,NSAutoreleasePool *是它指针类型。id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型。 int类型 int类型代表整数,它的十六进制表示方式:0xFFED0D,在使用NSLog函数中格式化字符串使用%i表示十进制的整数,%o(字母o)表示8进制整数,%#x表示十六进制整数。...

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多