我尝试拥有一个具有一些不变属性的对象,这些属性在构造函数上启动,并且在启动后无法更改。这些属性只有getter方法。由于我希望可以与其他类共享此对象,因此我将其保存到称为saveIt()
的共享对象类。
在iOS上运行该应用程序时,所有功能都可以正常工作(我尚未在Android上测试),除非我将应用程序从内存完全关闭并重新打开,丢失了这些属性,丢失了这些属性。代码如下:
var rooms:ArrayCollection = saveData.read("rooms") as ArrayCollection;
if (!roomExists) {
var room:Room;
room = new Room(myID, myName, maxRoomSize);
room.name = rm.name;
room.timestamp = new Date();
room.joinUrl = rm.joinUrl;
room.attendeeUrl = rm.attendeeUrl;
room.attendees = conferenceParameters.metadata.hasOwnProperty("attendees") ? conferenceParameters.metadata["attendees"] : null;
rooms.addItem(room);
}
saveIt.save("rooms", rooms);
我发现,如果我为每个不变的属性分配了一个虚拟设置器,即
function set myID(s:String):void{}
然后,即使我关闭了该应用程序,也可以安全地保存它。由于我找不到有关此代码行为的任何信息,因此我想在这里寻找意见!