Dans Objective-C J'ai le code valide:bloc Objective-C++ vs bloc Objective-C
TestTwo.h:
@interface TestTwo : NSObject
-(void)test;
@end
TestTwo.m:
@implementation TestTwo
-(void)test
{
void (^d_block)(void) =
^{
int n;
};
}
@end
Ce que je Nous voulons vraiment une classe Objective-C++ qui définit une méthode similaire à test
. C'est une simplification, mais illustre l'intention. Ainsi, en Objective-C++ je:
Test.h:
class Test
{
public:
void TestIt();
};
Test.mm:
#include "Test.h"
void Test::TestIt()
{
void (^d_block)(void) =
^{
int n;
};
}
Je reçois l'erreur suivante:
error: 'int Test::n' is not a static member of 'class Test'.
Si je supprimer int n;
il n'y a pas d'erreur. Comment puis-je définir n
dans le bloc dans ce contexte?
Passer au compilateur LLVM semble faire l'affaire. À votre santé! – ptoinson