Click here to Skip to main content
15,886,919 members
Articles / Mobile Apps / iPhone
Tip/Trick

How to implement a queue in Objective-C

Rate me:
Please Sign up or sign in to vote.
4.50/5 (6 votes)
12 Dec 2013CPOL 31.4K   6   1
How to implement Queue in Objective-C

Introduction

Last time, I posted a tip abort stacking with Objective-C. This time, I will implement a queue.

HsuQueue.h
Objective-C
@interface HsuQueue : NSObject {
    NSMutableArray* m_array;
}
 
- (void)enqueue:(id)anObject;
- (id)dequeue;
- (void)clear;
 
@property (nonatomic, readonly) int count;
 
@end
HsuQueue.m
Objective-C
@implementation HsuQueue

@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

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect SIS
Taiwan Taiwan
CloudBox cross-platform framework. (iOS+ Android)
Github: cloudhsu
My APP:
1. Super Baby Pig (iOS+Android)
2. God Lotto (iOS+Android)
2. Ninja Darts (iOS)
3. Fight Bingo (iOS)

Comments and Discussions

 
QuestionNS-prefix for object names Pin
cwilliam22-Jul-11 8:02
cwilliam22-Jul-11 8:02 
You shouldn't use "NS" as the prefix for your object names. According to Apple, NS is reserved for system implementations and you should instead choose a three letter prefix for custom classes/objects. For example, you could call it "HsuQueue", "ABCQueue", etc.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.