Как использовать NSInteger в объявлении класса в стиле c - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть объявление класса в стиле c:

#pragma once

class CSound
{
private:
   NSInteger bufferID;
public: 
    CSound(const char* fileName);
    ~CSound();
    static void init();
    void play();
};

Компилятор говорит NSInteger не называет тип .

Если я поставлю «NSInteger bufferID;» в файле .mm (не в .h) это работает. Что я делаю не так?

EDIT

Поскольку у меня все еще нет решения, я сделал быстрое грязное-уродливое исправление:

в файле .h, в определении класса

void* pBufferID;

и в файле .mm

// constructor
pBufferID = new NSUInteger;

// destructor
delete (NSUInteger*)pBufferID;

// everywhere I use it
*((NSUInteger*)pBufferID)

Ответы [ 2 ]

2 голосов
/ 22 ноября 2011

Вы не включаете заголовок, который определяет NSInteger из вашего собственного файла заголовка (возможно, Foundation.h).Предположительно, вы делаете это в своем файле .mm.Просто переместите эту директиву #import или #include в заголовок.

0 голосов
/ 22 ноября 2011

У вас есть:

#import <UIKit/UIKit.h> (iOS) или

#import <Cocoa/Cocoa.h> (Mac OS)

.. импортированные в верхней части .hфайл?

А вы уверены, что у вас есть все фреймворки, связанные с вашим проектом?

foundation.framework
appKit.framework
UIKit.framework
...