如何在LiveCode中的自定义属性中存储堆栈?

时间:2014-08-07 21:48:20

标签: ios livecode

我正在使用iOS应用。我想在文档文件夹中使用堆栈来存储一些数据和首选项。我知道我可以在创建独立时通过复制它来在引擎文件夹中包含一个堆栈,但是将堆栈存储在我的主堆栈的自定义属性中似乎更容易和更清晰。我可以在第一次运行应用程序时创建数据堆栈并将其存储在文档文件夹中。

我以为我可以在开发过程中做到这一点:

set the cDataStack of stack "My Main Stack" to URL ("binfile:" & tDataStackFilePath)

然后在创建新数据存储堆栈时,请执行以下操作:

set the defaultFolder to the documents folder
put the cDataStack of me into URL ("binfile:DataStack1.livecode")

......但这对我不起作用。它会创建一个0kb文件,当我希望它是原始文件的副本时。

这是为iOS创建数据堆栈的合理方法吗? 我的代码是否展示了正确的概念?

1 个答案:

答案 0 :(得分:0)

可能我的cDataStack是空的。也许,me指的是错误的控制或堆栈。试试这个:

// set the property
put URL ("binfile:" & tDataStackFilePath) into myStackData
if myStackData is not empty then
  set the cDataStack of stack "My Main Stack" to myStackData
  put the result into rslt
  if rslt is not empty then
    beep
    answer error rslt
  end if
else
  beep
  answer error "This file is empty or doesn't exist."
end if

// get the propety
put specialFolderpath("documents") & "/DataStack1.LiveCode" into myPath
if the cDataStack of me is not empty then
  put the cDataStack of me into URL ("binfile:" & myPath)
  put the result into rslt
  if rslt is not empty then
    beep
    answer error rslt
  end if
else
  beep
  answer error "The property is empty."
end if

在打开磁盘之前,您不需要将堆栈写入磁盘。你可以这样做:

go stack the cDataStack of me
put the result into rslt
if rslt is not empty then
  beep
  aswer error rslt
end if