- 浏览: 262033 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
hyxj1220:
原来是这么回事,,谢谢了
document的execCommand解释 -
zouhongmin:
太强了,我膜拜你,要向你学习。
减肥日志 -
codeboy_wang:
超炫 超喜欢
document的execCommand解释 -
laiang8283:
博主男的女的,100斤也不是很胖啊
减肥日志 -
yixiaof:
博主真有毅力啊。
减肥日志
1.@class用在循环嵌入#import时很有用,当A类引用了B类,而B类也引用了A类时用#import会报错,这时用@class,
@class相当于告诉编译器肯定会有一个这样的类。
3.Foundation包里有基础类:NSString ,NSMutableString,NSArray,NSMutableArray,NSEnumerator(数组枚举可以遍历访问数组元素),NSDictionary(字典用来保存大量数据并且可以快速找到),NSMutableDictionary,NSNumber
其中数组是以nil来结尾的,所以NSArray可以存储除了nil以外的任意类型对象。
遍历目录下的后缀.jpg的文件名
NSFileManager * manager;
manager = [ NSFileManger defaultManager];
NSString * home;
home = [@"~" stringByExpandintTiledInPath];
NSDirectoryEnumerator * direnum;
direnum = [manager enumeratorAtPath:home];
NSMultableArray * files;
files = [NSMutableArray arryWithCapacity:47];
NSString * fileName;
while(fileName = [direnum nextObject]{
if([[fileName pathExtension] isEqualTo:@"jpg"])
{
[files addObject:fileName];
}
}
NSEnumerator * fileenum;
fileenum = [fils objectEnumerator];
while(fileName = [filenum nextObject])
{
NSLog(@"%@",fileName);
}
4.内存管理 --- 引用计数对象调用retain方法则计数加一,调用release方法则计数减一。
关键是什么时候释放,什么时候加一,记住在把新对象赋值,在释放旧对象前先给新对象retain加一比较保险.
原则是谁创建,谁释放。
objective-C内存管理
1)当使用new,alloc,或cop创建对象时,对象的count retain到1,则一定要负责把这个对象release或autorelease掉,这样当它的生命周期结束时,才能清空。
2)当你调用方法获得一个对象时, 你可以认为已经retain了一个count,并且autolease掉,你不用考虑和它相关的清理问题,但是如果你想保留着个对象,就需要retian
,并且确保之后你release了这个对象。
3)如果你retain一个对象,则最终是需要releas或者autolease它。
4)需要销毁对象的时候,不直接调用dealloc,而是调用release,
5) 新生成的对象,只要调用autorelease就行了,无需再调用release!
6)除了alloc,new 或copy之外的方法创建的对象都被声明了autolease.
7)内存标准使用:
* 创建对象:
ClassA * obj1 = [[ClassA alloc]init];
*创建一个autoRelease对象
ClassA * obj1 = [[[ClassA alloc]inin]autoRelease];
*Release一个对象后,必须立即把指针清空
[obj1 release];
obj1 = nil;
*指针赋值给另一个指针。
ClassA * obj2 = obj1;
[obj2 retain];
//do sometin
[obj2 releas];
obj2 = nil;
*在一个函数中创建并返回对象,需要把这个对象设置为iautorelease
ClassA *Func1()
{
ClassA *obj = [[[ClassA alloc]init]autorelease];
return obj;
}
2012-8-5 object-c语法再整理
1)classes基本定义
@interface
- 繼承(inheritance)以 Class: Parent 表示,就像上面的 Fraction: NSObject。
- 夾在 @interface Class: Parent { .... } 中的稱為 instance variables。
- 沒有設定存取權限(protected, public, private)時,預設的存取權限為 protected。設定權限的方式將在稍後說明。
- Instance methods 跟在成員變數(即 instance variables)後。格式為:scope (returnType) methodName: (parameter1Type) parameter1Name;
- scope 有class 或 instance 兩種。instance methods 以 - 開頭,class level methods 以 + 開頭。
- Interface 以一個 @end 作為結束。
@implementation
-
Implementation 以 @implementation ClassName 開始,以 @end 結束
- Fraction *frac = [[Fraction alloc] init];
- 在 Objective-C 中调用methods 的方法是 [object method],就像 C++ 的 object->method()。
- Objective-C 沒有 value 型別。所以沒有像 C++ 的 Fraction frac; frac.print(); 這類的東西。在 Objective-C 中完全使用指针來處理对象。
- 這行程式碼實際上做了兩件事: [Fraction alloc] 呼叫了 Fraction class 的 alloc method。這就像 malloc 記憶體,這個動作也做了一樣的事情。
- [object init] 是一個构造(constructor)方法,負責初始化物件中的所有变量。它调用[Fraction alloc] 傳回的 instance 上的 init method。這個動作非常普遍,所以通常以一行程式完成:Object *var = [[Object alloc] init];
- [frac setNumerator: 1] 非常簡單。它呼叫了 frac 上的 setNumerator method 並傳入 1 為參數。
- 如同每個 C 的变量,Objective-C 也有一個用以釋放内存的方式: release。它繼承自 NSObject,這個 method 在之後會有詳盡的解說。
- Fraction *frac = [[Fraction alloc] init];
2)多重参数
声明和定义 -(void)setNumertor:(int)numertor andDenominator:(int)denomintao
调用 [frac setNumertor:1 andDenominator:2];
- 這個 method 實際上叫做 setNumerator:andDenominator:
- 加入其他參數的方法就跟加入第二個時一樣,即 method:label1:label2:label3: ,而呼叫的方法是 [obj method: param1 label1: param2 label2: param3 label3: param4]
- Labels 是非必要的,所以可以有一個像這樣的 method:method:::,簡單的省略 label 名稱,但以 : 區隔參數。並不建議這樣使用。
3)构造函数-(id)init
Objective-C 中的建構子就是一個 "init" method,
4)異常情況(Exceptions)
- 异常派生与NSException 例如:@interface CupWaring:NSException
- 函数定义时,自定义异常对象生成并抛出 NSException * e = [CupWaring exceptionWithName:@"" reason:@"" userInfo:nil]; @ throw e;
- 函数调用时捕获异常 @try{ [obj fun]} @catch(CupWaring *e){}
5)id 型別 Objective-C 有種叫做 id 的类型,它的運作有時候像是 void*,不過它卻嚴格規定只能用在对象。
6)类型识别
7)Objective-C 裡的 Protocol 與 Java 的 interface 或是 C++ 的 purely virtual class 相同。
发表评论
-
2013学习
2013-02-18 17:23 8692013-2-18 http://developer.a ... -
xcode下控制台中文乱码
2013-01-08 12:20 2986http://blog.csdn.net/ydj213/art ... -
cocos2d game +ios5 之蜘蛛
2012-10-12 11:04 1092http://tobia.github.com/CrossSl ... -
Box2d基本知识
2012-08-31 17:39 592http://www.ohcoder.com/post/201 ... -
转objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
2012-08-08 11:22 810http://map.baidu.com/?qt=inf&am ... -
cocos2d游戏开发思路
2012-06-29 16:44 02012-6-29 游戏level的实现有2种思路一种 ... -
下载列表
2012-06-20 09:53 595写进去心里的那些话----- 当被别人忽略、冷落的时 ... -
cocos2d game +ios5
2012-06-19 16:41 1421http://bsr1983.iteye.com/blog/1 ... -
[转载]转载 【IOS】Object-C 中的Selector 概念 (2012-01-10 16:37:55)
2012-06-19 16:01 696原文地址:转载 【IOS】Object-C 中的Sel ... -
xcode4.3秘笈
2012-05-22 11:35 5191.It's just slightly different ... -
ios面试题收集
2012-04-09 14:43 2407objective-c学习网页 ht ... -
CCScene,CCLayer,CCSprite,CCNode
2012-04-05 16:22 808http://blog.csdn.net/porsch ... -
objective-c多参数解析和@class声明的作用
2012-03-30 09:37 2275Objective-C 多参数成员函数 ... -
cocos2d做游戏之一入门
2012-03-28 10:37 1406有的时候发现做一件事 ... -
xcode4.2下创建MainWindow
2012-03-28 09:41 9281、创建Empty Application工程;注意创建时的C ... -
iphone下的导航视图
2012-03-19 16:05 1326UINavigationController的特点 ... -
iphone下的多视图 --xcode3.1实现
2012-03-16 11:27 1745苹果电脑os是Mac os 而ipon ... -
一个view两个tableview
2012-03-14 09:59 6593http://www.trappers.tk/site/201 ... -
xcode4.2里自定义viewController和view切换
2012-03-03 22:59 26101)添加自定义 viewController 在新版的v ... -
iphone中的触摸手势判断,滑动,单击,双击
2012-03-06 09:48 2936/////////////////////////////// ...
相关推荐
这篇文章为您呈现了一份详尽的Object-C语言学习资源概览,旨在帮助初学者和经验丰富的开发者系统地学习Object-C编程,并通过实践案例和项目资源提升实际编程能力。 文章首先聚焦于Object-C语言教程,这是学习Object...
Object-Oriented Programming with Object-C Object-C 进阶书籍---面向对象
Object-C语言基础: 学习Object-C语言的基本语法和特性,了解Objective-C编程范式和iOS开发规范。 列表选择功能实现: 掌握实现iOS应用中列表选择功能的方法和技巧,包括列表的展示、数据的加载和选择状态的管理等...
阅读本文档,您最好有一定的C语言、JAVA语言的基础。 文档内容: 1. GNUStep的安装 2. 类定义 3. Object-C中的布尔类型 4. Object-C中的null 5. 与C混合编写 6. 对象的初始化 7. Object-C的description方法 ...
Object-C_在iOS上使用Object-C进行RSA算法的加密+解密实现
object-c基础教程object-c基础教程object-c基础教程
Object-C语言是一种面向对象的程序设计语言,常用于iOS和macOS应用程序的开发。在iOS开发中,经常需要将JSON数据转换为模型对象,以便更方便地处理数据。为了简化这一过程,开发者可以使用开源库"MJExtension"来实现...
Object-C期末复习资料,包含多道题目助力期末复习,成功考试过关
Object-C语言教程 Object-C语言教程 Object-C语言教程 Object-C语言教程
Object-C语言教程:Objective-C 简介
【Object-C】ios苹果app开发入门object-c例子demo14个实例 一般编程问题 【实例简介】 ios苹果app开发入门,object-c,例子,demo,14个实例 初学者难得的学习实例 【实例截图】 【核心代码】 归档 ├── Air...
object-c编程实例,主要介绍如果用object-c编写计算器
object -c 解析 MS PPT 希望给大家一个学习思路。
【Object-C】object-c入门基础 object-c入门基础 说明:object-c入门基础 object-c入门基础 (Object-c Start Basics) 文件列表: object-c入门基础.doc (27648, 2014-10-29) 【Object-C】object-c入门基础 object-c...
object-c测试代码,参考书上的代码,自己敲的,略有修改。
该压缩文档包括了Object-C学习的两大经典书籍,《Object-C程序设计》、《Object-C基础教程》。建议先学习第一本书,然后学习第二本书。如果有c/c++的基础,学起来会非常快的。由于本人没什么下载积分,就厚着脸向...
EventBusObject-CVersion(EventBus的Object-C语言版本)
使用object-c开发的五子棋游戏,包含代码和文档。。。。。。。。。。。
Object-C语言实现列表选择项目源码.zipObject-C语言实现列表选择项目源码.zipObject-C语言实现列表选择项目源码.zip