`
icrwen
  • 浏览: 268083 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

object-C

 
阅读更多

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 在之後會有詳盡的解說。

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 相同。

 

 

 

分享到:
评论

相关推荐

    Object-Cios苹果app开发入门object-c例子demo14个实例 一般编程问题

    【Object-C】ios苹果app开发入门object-c例子demo14个实例 一般编程问题 【实例简介】 ios苹果app开发入门,object-c,例子,demo,14个实例 初学者难得的学习实例 【实例截图】 【核心代码】 归档 ├── Air...

    【Object-C语言教程及实际案例】Object-C语言教程及实际案例

    Object-C语言教程及实际案例Object-C语言教程及实际案例Object-C语言教程及实际案例Object-C语言教程及实际案例Object-C语言教程及实际案例Object-C语言教程及实际案例Object-C语言教程及实际案例Object-C语言教程及...

    Object-C语言教程&案例&相关项目资源

    这篇文章为您呈现了一份详尽的Object-C语言学习资源概览,旨在帮助初学者和经验丰富的开发者系统地学习Object-C编程,并通过实践案例和项目资源提升实际编程能力。 文章首先聚焦于Object-C语言教程,这是学习Object...

    Object-C-在iOS上使用Object-C进行RSA算法的加密+解密实现.zip

    在iOS平台上,Object-C是开发原生应用的主要编程语言之一,尤其在苹果的移动设备上。RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于数据安全领域,如数字签名、密钥交换等。本教程将详细讲解如何在...

    Object-C语言文件读写操作代码

    Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写操作代码,Object-C语言文件读写...

    如何学习Object-C语言《PDF文档》

    Object-C是一种基于C语言的面向对象编程语言,主要应用于苹果的iOS和macOS平台开发。学习Object-C语言是成为Apple平台应用开发者的必备技能之一。本文将深入探讨如何有效地学习和掌握这一强大的编程语言。 理解基础...

    如何学习Object-C语言(PDF文档)

    Object-C是一种基于C语言的面向对象编程语言,主要应用于苹果的iOS和macOS平台开发。学习Object-C语言是成为Apple平台应用开发者的必备技能之一。本文将深入探讨如何有效地学习和掌握这一强大的编程语言。 理解基础...

    Object-C语言详解(文档)

    Object-C语言详解(文档) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! Object-C语言详解(文档) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! Object-C语言详解(文档) 仅供学习交流! ...

    Object-C是一种基于Smalltalk的编程语言,主要用于Mac OS X和iOS应用程序开发 Object-C的资源主要

    Object-C是一种基于Smalltalk的编程语言,主要用于Mac OS X和iOS应用程序开发。Object-C的资源主要分为官方文档、社区驱动的资源、学习资源和工具等。 官方文档 Apple Developer Documentation:Apple官方文档,...

    Object-C语言详细学习教程 入门攻略整理面试.docx

    定义与特点:Object-C是一种基于C语言的面向对象编程语言,由Brad J. Cox于20世纪80年代早期设计,以SmallTalk-80语言为基础。它支持面向对象、动态性、扩展性、自动垃圾回收机制、C语言兼容性以及静态类型检查等...

    如何学习Object-C语言

    Object-C是一种基于C语言的面向对象编程语言,主要应用于苹果的iOS和macOS平台开发。学习Object-C语言是成为Apple平台应用开发者的必备技能之一。本文将深入探讨如何有效地学习和掌握这一强大的编程语言。 首先,...

    基于Object-C语言实现列表选择(项目源码).rar

    Object-C语言基础: 学习Object-C语言的基本语法和特性,了解Objective-C编程范式和iOS开发规范。 列表选择功能实现: 掌握实现iOS应用中列表选择功能的方法和技巧,包括列表的展示、数据的加载和选择状态的管理等...

    Object-C语言教程&案例&相关项目资源(PPT文档)

    Object-C,作为苹果公司开发的Objective-C的缩写,是一种基于C语言的面向对象编程语言,广泛应用于iOS和macOS平台的软件开发。它在C语言的基础上添加了Smalltalk式的消息传递机制,使得面向对象编程更加灵活。 **1....

    Object-C-在iOS上使用Object-C进行RSA算法的加密+解密实现源代码

    Object-C-在iOS上使用Object-C进行RSA算法的加密+解密实现源代码 在iOS平台上,Object-C是开发原生应用的主要编程语言之一,尤其在苹果的移动设备上。RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于...

    抖音 iOS Object-C版,抖音demo适配了iphone、ipad

    抖音 iOS Object-C版,抖音demo适配了iphone、ipad 同时兼容iOS8.0至iOS12.0系统。当前抖音demo使用Object-C语言编写 结构 本项目共分为三个部分。第一部分为抖音个人主页实现,包含NSOperationQueue多队列解析webp...

    Object-C语言教程、案例、相关项目资源《PPT文档》

    Object-C,作为苹果公司开发的Objective-C(通常简写为ObjC)是一种基于C语言的面向对象编程语言,是iOS和macOS等Apple平台上的主要开发语言。它在C语言的基础上增加了Smalltalk风格的消息传递机制,为开发者提供了...

    Object-C基础教程

    Object-C,作为苹果公司开发的Objective-C语言的简称,是iOS和macOS应用程序开发的核心语言。它是一种面向对象的编程语言,基于C语言,并加入了Smalltalk的类和消息传递机制,使其在C的基础上具备了更强大的面向对象...

    Object-C语言教程

    Object-C,全称Objective-C,是一种基于C语言的面向对象编程语言,主要用于Apple的iOS和macOS平台开发。它在C语言的基础上添加了Smalltalk风格的消息传递机制,使得对象间的交互更加灵活。本教程将深入探讨Object-C...

    Object-Oriented Programming with Object-C

    标题"Object-Oriented Programming with Objective-C"明确指出,本文档与Objective-C这门编程语言以及面向对象编程范式相关。Objective-C是苹果公司为其Mac操作系统开发的应用程序编程语言,后来成为iOS应用程序开发...

Global site tag (gtag.js) - Google Analytics