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提供了多种实现多线程的方式,如NSThread、NSOperationQueue、GCD(Grand Central Dispatch)等。书中会详细介绍这些机制的工作原理、使用方法以及它们之间的区别。例如,NSThread允许开发者创建并控制...
Objective-C是基于C语言的,主要用于构建iOS和macOS应用程序,而Objective-C++则是Objective-C的一个扩展,它引入了C++的特性,使得开发者可以同时利用Objective-C的动态特性和C++的面向对象编程能力。 ### ...
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,添加了面向对象特性。它的基础包括类、对象、消息传递等概念。类定义了对象的属性和行为,对象则是类的实例。消息传递是Objective-C的核心,通过`...
1. **Objective-C的起源与特性**:Objective-C是在C语言的基础上扩展的,增加了消息传递机制和面向对象特性。它的语法包含C语言的所有部分,同时引入了类、继承、多态等OOP概念。 2. **类与对象**:在Objective-C中...
Objective-C是C语言的超集,它扩展了C语言,加入了面向对象的特性。面向对象编程(OOP)的核心概念包括类、对象、继承、封装和多态。Objective-C通过消息传递机制实现了这些概念,使得代码更加模块化和可维护。 2....
Objective-C是在C语言基础上扩展的,它引入了消息传递机制和类的概念,使得C语言具备了面向对象的能力。Objective-C的语法在某些方面与C++相似,但它的动态性更强,允许在运行时修改类和方法。 2. **类与对象**: ...
- **消息传递**:Objective-C通过消息传递实现方法调用,语法是`[receiver method]`,接收者是receiver,方法是method。 - **协议(Protocol)**:Objective-C支持接口定义,称为协议,用于定义一组必须或可选的...
Objective-C是Apple平台上的主要编程语言,它被用来实现A*算法时,可以创建高效的iOS和Mac应用程序。下面我们将深入探讨Objective-C实现的A*算法。 一、A*算法基础 A*算法的核心思想是通过结合启发式信息(通常是...
在这个项目中,我们将会深入探讨如何利用Objective-C实现一个Socket服务器,以便进行客户端和服务器之间的数据通信。 首先,我们需要理解Socket的基本概念。Socket是一种在两台计算机之间建立网络连接的接口,它...
Objective-C是一种强大的面向对象的编程语言,特别是在iOS和macOS应用开发中占据核心地位。"Effective Objective-C 2.0&Obj-C高级编程"这个压缩包文件包含了关于这个语言的深入学习资料,旨在帮助开发者提升他们的...
Objective-C是一种面向对象的编程语言,它是C语言的超集,主要用于Apple的Mac OS X和iOS操作系统。在Objective-C2.0中,苹果引入了一些改进和优化,使其更易用且效率更高。以下是对Objective-C2.0程序设计中一些关键...
Objective-C是C语言的一个扩展,它引入了Smalltalk式的面向对象特性,如消息传递和类别(Category)。在本书中,你将了解到: 1. **Objective-C基础**:从基本语法入手,包括类、对象、方法定义、实例变量以及初始...
在Objective-C中,内存管理是通过引用计数(Reference Counting)和自动引用计数(Automatic Reference Counting, ARC)来实现的。引用计数是一种基础的内存管理策略,它跟踪对象被引用的次数,当对象的引用计数变为...
Objective-C是一种强大的面向对象的编程语言,主要用于Apple的Mac OS X和iOS操作系统。它基于C语言,添加了Smalltalk的类、消息传递等面向对象特性。在这个“Objective-C程序设计+代码”主题中,我们将深入探讨这个...
本书主要针对苹果的两大操作系统平台,即iOS和macOS,提供了丰富的实践经验和专业指导,帮助开发者在使用Cocoa、Cocoa Touch、Objective-C和Swift开发应用时实现最佳性能。 首先,Cocoa和Cocoa Touch是苹果为macOS...
Objective-C作为一种面向对象的编程语言,它结合了C语言的简洁性和Smalltalk风格的消息传递机制,是iOS和Mac OS X平台开发的重要语言。本指南中的内容涵盖了代码编写的各种细节,包括命名约定、代码布局、注释、类的...
1. **对象间的交互**:Objective-C中,对象间的通信主要通过消息传递机制实现,包括代理模式(Delegate)、观察者模式(Observer)、Blocks以及App Delegate。代理允许一个对象向另一个对象发送通知,观察者模式用于...
Objective-C 2.0 是苹果公司为iOS和Mac OS X操作系统开发的一种面向对象的编程语言,它是C语言的超集,融入了Smalltalk的特性。本资料主要关注的是Objective-C 2.0的课后习题解答,这些习题旨在帮助学习者深入理解...
常见的优先队列实现有堆(堆排序中的二叉堆)和 Fibonacci heap 等。在本案例中,使用完全二叉树实现优先队列,通常会采用二叉堆的形式,即二叉树的父节点的优先级总是大于或等于其子节点。这样可以保证在任何时候,...