我尝试使用一些具有一些不可变属性的对象,这些属性在构造函数中启动,并且在启动后无法更改。那些属性只有getter方法。由于我希望此对象可以与其他类共享,因此我将其保存到名为saveIt()
的SharedObject类中。
在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);
答案 0 :(得分:0)
我发现如果为每个不可变属性分配一个虚拟设置器,即
function set myID(s:String):void{}
然后即使我关闭应用程序也可以安全地保存。由于我找不到有关此代码行为的任何信息,所以我想在这里寻找意见!!