1

我有一个 Mac RB 应用程序,当我根据用户的首选项向 TextOutputStream 写入一行时崩溃。当用户是管理员时,写操作效果很好,但任何其他用户都崩溃了。这让我认为这是一个权限问题,所以我尝试更改权限,但没有运气。

错误是:“未处理 NilObjectException 类的异常。操作必须关闭”

非常感谢您提供的任何帮助。谢谢!

这是代码:

Dim TableString as String
Dim fileStream As TextOutputStream
Dim File as FolderItem

File = SpecialFolder.SharedPreferences.Child("FileName.txt") 

TableString = TranslationTableToString

fileStream=File.CreateTextFile

// This didn't help:
//File.permissions= &o777

// This line Breaks:
fileStream.WriteLine TableString
4

1 回答 1

1

您没有提及您使用的是哪个版本的 RB,但对于任何合理的当前版本,您应该使用的语法是:

fileStream = TextOutputStream.Create(File)

您应该将其包装在 Try/Catch 中以获取此信息:

Try
  fileStream = TextOutputStream.Create(File)
  fileStream.WriteLine(TableString)
Catch e As IOException
  MsgBox("Error Code: " + Str(e.ErrorNumber))
End Try

e.ErrorNumber 将包含一个特定于操作系统的错误代码,以帮助您查明问题。

http://docs.realsoftware.com/index.php/IOException

于 2010-10-08T00:55:20.530 回答