Joh*_*ohn 2 objective-c objective-c++ ios
我正在开发一个GameKitHelper类,它主要用C++编写,但在某些地方使用Objective-C,在.mm文件中.
我删除了一些功能来隔离错误:
void GameKitHelper::PopulateFriendScores(DynArray<GameCenterScore> *FriendScores)
{
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
leaderboardRequest.playerScope = GKLeaderboardPlayerScopeFriendsOnly;
leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboardRequest.range = NSMakeRange(1,25);
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error)
{
int i = 0;
printf("%d", i);
}];
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
'int GameKitHelper::i' is not a static member of 'class GameKitHelper'
Run Code Online (Sandbox Code Playgroud)
这是一个gcc bug.有关它的许多报告之一,请参阅Objective-C++块与Objective-C块.
<soapbox>我建议尽可能避免使用Objective-C++.编译速度慢,运行起来很臃肿(尤其是ARC,因为它打开了-fobjc-arc-exceptions),编译器和调试器中的错误,以及我给两个世界中最糟糕的经历带来的麻烦.C++很好.Objective-C很好.只需保持它们之间的接口尽可能小.</肥皂盒>
但切换到clang 2.0可能会解决这个具体问题.
| 归档时间: |
|
| 查看次数: |
1374 次 |
| 最近记录: |