views:

68

answers:

2

Hi,

I need to rename a ObjC Class Implementation File into *.mm, because I'm using a C++ Framework (Box2D). After renaming the file and setting the Filetype to "sourcecode.cpp.objcpp" my following declaration of private methods produces some errors like:

error: expected identifier before 'private'

The declaration of methods:

@interface GameplayLayer(private)
 - (void)spawnTick:(ccTime)delta;
 - (void)pushSpawnTick;
@end

How can I use declarations of private methods in ObjC++?

+3  A: 

It is probably because private is a keyword in C++. You can either change it to something else like hidden or leave the category name empty (this is called a 'class continuation', you can read more about it by searching in this article.)

Colin Gislason
thanks thats it
LeonS
+1  A: 

this is the way I declare my private methods in Obj-C basically is just creating a category with no name in the .m hope this helps

//this is A.h

@interface A

- (void) publicMethod1;

@end



//this is A.m

@interface A ()

- (void) privateMethod1;

@end

@implementation A

- (void) publicMethod1
{
    //foo
}

- (void) privateMethod1
{
    //foo
}

@end
camilin87