0
我正在做一些從Qt Cocos2d到iOS cocos2d的移植,我正在使用Objective-C++作爲最小努力的語言,現在我正在將NSMutableArray包裝到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
我在這一行recieving EXC_BAD_SIGNAL
return [List count];
誰能幫助我,我非常感激,在此先感謝:)
這沒有問題,問題在於此行 ai_uni t.playerP = this; 我被註釋掉它,直到稍後的時間,所以我可以取消它,它試圖訪問:) 謝謝!如果你有意見了這段代碼,讓我知道:P – shbli
諮詢/警告:確保你的代碼不會隱式地拷貝一個'QList'對象,或者你最終可能會通過調用釋放'List'來保留在拷貝構造函數中。 – Joe
謝謝你的建議,實際上我也刪除了析構函數〜QList中的代碼,因爲它導致了問題,並且添加了一個叫做release的函數,在使用任何QList之後,我手動釋放它 – shbli