我在objective-c中开发基于文本的冒险游戏,我已经完成了很多部分,包括输入/输出系统和命令解析器。我唯一想不到的是创建“房间”的最佳方式。
起初我尝试使用XML来存储它们,然后使用NSXMLParser来读取它们,但这并没有足够的复杂性。
所以现在我决定创建一个类“AbstractLocation”并为每个房间创建一个子类。 但是,我无法连接所有东西。这些是我的课程:
控制器 控制游戏的输入/输出和核心部分 AbstractLocation 游戏的通用空间,可以创建子类以创建每个特定的房间 CreateMap 从AbstractLocation类创建每个特定的房间 Location_room1 Location_room2 等...
我想知道如何从每个Location_roomx访问Interface Builder中创建的Controller类的实例,因为每个房间都是在CreateMap类中以编程方式创建的,所以我不能使用IBOutlet。
如果我也愿意为更好的方式创建游戏的房间系统提供建议。
答案 0 :(得分:1)
您不需要IBOutlet。
只需在AbstractLocation上定义一个属性,并在创建房间的代码中,为它指定一个指向Controller的指针。
IBOutlet的目的是让Interface Builder做同样的事情,但没有代码。在编写代码时,您不需要IBOutlet,只需要一个属性和代码来为其赋值。