`
JasonShieh
  • 浏览: 527570 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Objective-C 队列实现

 
阅读更多
Objective-C 队列实现

原贴地址:http://blog.csdn.net/cloudhsu/article/details/6589313

Objective-C同样没有提供Queue容器,因此我也自己实践了一个
#import <Foundation/Foundation.h>
@interface NSQueue : NSObject {
NSMutableArray* m_array;
}
- (void)enqueue:(id)anObject;
- (id)dequeue;
- (void)clear;
@property (nonatomic, readonly) int count;
@end

#import "NSQueue.h"
@implementation NSQueue
@synthesize count;
- (id)init
{
if( self=[super init] )
{
m_array = [[NSMutableArray alloc] init];
count = 0;
}
return self;
}
- (void)dealloc {
[m_array release];
//[self dealloc]; --递你妹的归啊
    [super dealloc];
}
- (void)enqueue:(id)anObject
{
[m_array addObject:anObject];
count = m_array.count;
}
- (id)dequeue
{
    id obj = nil;
    if(m_array.count > 0)
    {
        obj = [[[m_array objectAtIndex:0]retain]autorelease];
        [m_array removeObjectAtIndex:0];
        count = m_array.count;
    }
    return obj;
}
- (void)clear
{
[m_array removeAllObjects];
        count = 0;
}
@end

另一版本:

#import <Foundation/Foundation.h>
@interface NSQueue : NSObject {
NSMutableArray* m_array;
}
- (void)enqueue:(id)anObject;
- (id)dequeue;
- (void)clear;
@property (nonatomic, readonly) int count;
@end
#import "NSQueue.h"
@implementation NSQueue
@synthesize count;
- (id)init
{
    if( self=[super init] )
    {
        m_array = [[NSMutableArray alloc] init];
    }
    return self;
}
- (void)dealloc {
    [m_array release];
    [super dealloc];
}
- (void)enqueue:(id)anObject
{
    [m_array addObject:anObject];
}
- (id)dequeue
{
    id obj = nil;
    if(m_array.count > 0)
    {
        obj = [[[m_array objectAtIndex:0]retain]autorelease];
        [m_array removeObjectAtIndex:0];
    }
    return obj;
}
- (void)clear
{
    [m_array removeAllObjects];
}
- (int) count{
    return [m_array count];
}
@end
分享到:
评论

相关推荐

    Objective-C高级编程 iOS与OS X多线程和内存管理_Objective-C_ios_

    Objective-C提供了多种实现多线程的方式,如NSThread、NSOperationQueue、GCD(Grand Central Dispatch)等。书中会详细介绍这些机制的工作原理、使用方法以及它们之间的区别。例如,NSThread允许开发者创建并控制...

    Objective-C与Objective-C++的混用代码示例

    Objective-C是基于C语言的,主要用于构建iOS和macOS应用程序,而Objective-C++则是Objective-C的一个扩展,它引入了C++的特性,使得开发者可以同时利用Objective-C的动态特性和C++的面向对象编程能力。 ### ...

    Objective-C2.0程序设计第二版中文版及代码

    1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,添加了面向对象特性。它的基础包括类、对象、消息传递等概念。类定义了对象的属性和行为,对象则是类的实例。消息传递是Objective-C的核心,通过`...

    这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip

    1. **Objective-C的起源与特性**:Objective-C是在C语言的基础上扩展的,增加了消息传递机制和面向对象特性。它的语法包含C语言的所有部分,同时引入了类、继承、多态等OOP概念。 2. **类与对象**:在Objective-C中...

    Objective-C基础教程(Learn Objective-C)随书源码下载

    Objective-C是C语言的超集,它扩展了C语言,加入了面向对象的特性。面向对象编程(OOP)的核心概念包括类、对象、继承、封装和多态。Objective-C通过消息传递机制实现了这些概念,使得代码更加模块化和可维护。 2....

    objective-c学习资料

    Objective-C是在C语言基础上扩展的,它引入了消息传递机制和类的概念,使得C语言具备了面向对象的能力。Objective-C的语法在某些方面与C++相似,但它的动态性更强,允许在运行时修改类和方法。 2. **类与对象**: ...

    Objective-C开发范例代码大全

    - **消息传递**:Objective-C通过消息传递实现方法调用,语法是`[receiver method]`,接收者是receiver,方法是method。 - **协议(Protocol)**:Objective-C支持接口定义,称为协议,用于定义一组必须或可选的...

    Objective-C 实现的 A*算法

    Objective-C是Apple平台上的主要编程语言,它被用来实现A*算法时,可以创建高效的iOS和Mac应用程序。下面我们将深入探讨Objective-C实现的A*算法。 一、A*算法基础 A*算法的核心思想是通过结合启发式信息(通常是...

    MAC SocketServer Objective-C语言编写

    在这个项目中,我们将会深入探讨如何利用Objective-C实现一个Socket服务器,以便进行客户端和服务器之间的数据通信。 首先,我们需要理解Socket的基本概念。Socket是一种在两台计算机之间建立网络连接的接口,它...

    Effective Objective-C 2.0&Obj;-C高级编程

    Objective-C是一种强大的面向对象的编程语言,特别是在iOS和macOS应用开发中占据核心地位。"Effective Objective-C 2.0&Obj-C高级编程"这个压缩包文件包含了关于这个语言的深入学习资料,旨在帮助开发者提升他们的...

    Objective-C2.0程序设计 答案

    Objective-C是一种面向对象的编程语言,它是C语言的超集,主要用于Apple的Mac OS X和iOS操作系统。在Objective-C2.0中,苹果引入了一些改进和优化,使其更易用且效率更高。以下是对Objective-C2.0程序设计中一些关键...

    禅与 Objective-C 编程艺术 .zip

    Objective-C是C语言的一个扩展,它引入了Smalltalk式的面向对象特性,如消息传递和类别(Category)。在本书中,你将了解到: 1. **Objective-C基础**:从基本语法入手,包括类、对象、方法定义、实例变量以及初始...

    Objective-C高级编程 iOS与OS X多线程和内存管理

    在Objective-C中,内存管理是通过引用计数(Reference Counting)和自动引用计数(Automatic Reference Counting, ARC)来实现的。引用计数是一种基础的内存管理策略,它跟踪对象被引用的次数,当对象的引用计数变为...

    objective-c 程序设计 + 代码

    Objective-C是一种强大的面向对象的编程语言,主要用于Apple的Mac OS X和iOS操作系统。它基于C语言,添加了Smalltalk的类、消息传递等面向对象特性。在这个“Objective-C程序设计+代码”主题中,我们将深入探讨这个...

    iOS and macOS Performance Tuning Cocoa, Cocoa Touch, Objective-C, and Swift

    本书主要针对苹果的两大操作系统平台,即iOS和macOS,提供了丰富的实践经验和专业指导,帮助开发者在使用Cocoa、Cocoa Touch、Objective-C和Swift开发应用时实现最佳性能。 首先,Cocoa和Cocoa Touch是苹果为macOS...

    Objective-C代码风格指南

    Objective-C作为一种面向对象的编程语言,它结合了C语言的简洁性和Smalltalk风格的消息传递机制,是iOS和Mac OS X平台开发的重要语言。本指南中的内容涵盖了代码编写的各种细节,包括命名约定、代码布局、注释、类的...

    objective-c面试大全

    1. **对象间的交互**:Objective-C中,对象间的通信主要通过消息传递机制实现,包括代理模式(Delegate)、观察者模式(Observer)、Blocks以及App Delegate。代理允许一个对象向另一个对象发送通知,观察者模式用于...

    objective-c 2.0 课后习题答案

    Objective-C 2.0 是苹果公司为iOS和Mac OS X操作系统开发的一种面向对象的编程语言,它是C语言的超集,融入了Smalltalk的特性。本资料主要关注的是Objective-C 2.0的课后习题解答,这些习题旨在帮助学习者深入理解...

    二叉树-基于Objective-C的完全二叉树实现的优先队列.zip

    常见的优先队列实现有堆(堆排序中的二叉堆)和 Fibonacci heap 等。在本案例中,使用完全二叉树实现优先队列,通常会采用二叉堆的形式,即二叉树的父节点的优先级总是大于或等于其子节点。这样可以保证在任何时候,...

Global site tag (gtag.js) - Google Analytics