[Objective-C的新手,正在努力解决其他语言中直截了当的问题。]
我想做这样的事情:
@interface GameBoard : NSObject {
// ..
GameState *parentGameState;
}
- (GameBoard) initStartGame (GameState *) parent;
这样GameState(其中有一个GameBoard指针作为成员)可以创建一个GameBoard,而GameBoard又有一个指针返回创建它的GameState。
然而,似乎在Objective-C中,对象和指向对象的指针都不是方法参数。
那么创造一对物体的成语又是什么呢?必须有办法,否则你不能做基本的事情,例如双重链表。
答案 0 :(得分:4)
指向对象的指针可以是方法参数,只是语法错误
- (id) initStartGame: (GameState *) parent; // you forgot the colon
init方法通常会返回id - 但是如果要返回特定类型,请使用GameBoard*
,这不是惯用的。
您可能需要使用@class进行转发声明(以避免相互导入)。
所以而不是
#import "GameState.h"
使用
@class GameState;
在GameBoard.h中