NSMutableArray, обернутый в класс C ++ - PullRequest
0 голосов
/ 21 декабря 2011

Я делаю портирование с Qt Cocos2d на iOS cocos2d, использую Objective-C ++ в качестве языка для минимальных усилий, теперь я оборачиваю NSMutableArray в класс C ++ для более простого переноса, в основном это мой класс

QList.h

#ifndef QLIST_H
#define QLIST_H

#import <Foundation/Foundation.h>

class QList {
    NSMutableArray* List;

public:
    QList();
    ~QList();
    void append(id);
    id at (int i);
    int size();
    bool isEmpty();
    id takeLast();
    id last();
    void prepend(id);
    id takeAt(int i);
    id takeFirst();
    void clear();
};

#endif

QList.mm

#ifndef QLIST_MM
#define QLIST_MM

#import "QList.h"

QList::QList() {
    List = [[NSMutableArray alloc] init];
}
QList::~QList() {
    [List autorelease];
    List = nil;
}
void QList::append(id object) {
    [List addObject:object];
}

id QList::at(int i) {
    return [List objectAtIndex:i];
}

int QList::size() {
    return [List count];
}

bool QList::isEmpty() {
    if ([List count] == 0)
        return true;
    return false;
}

id QList::takeLast() {
    id temp = [List lastObject];
    [List removeLastObject];
    return temp;
}

id QList::last() {
    return [List lastObject];
}

void QList::prepend(id object) {
    [List insertObject:object atIndex:0];
}

id QList::takeAt(int i) {
    id temp = [List objectAtIndex:i];
    [List removeObjectAtIndex:i];
    return temp;
}

id QList::takeFirst() {
    return takeAt(0);
}

void QList::clear() {
    [List removeAllObjects];

}

#endif

Я получаю EXC_BAD_SIGNAL по этой строке

    return [List count];

Может ли кто-нибудь мне помочь,Я очень ценю это, заранее спасибо :)

1 Ответ

0 голосов
/ 21 декабря 2011

С этим проблем нет, проблема была в этой строке

ai_unit.playerP = this;

Я комментировал это до более позднего времени, так что я могу раскомментировать его, и он пытался получить к нему доступ :) Спасибо!, если у вас есть совет для этого кода, дайте мне знать: P

...