2012-02-23 90 views
3

我正在做我的第一个带Monotouch的iOS应用程序,并且我从我的资源目录中加载了很多图像。我偶尔会得到一个文件名错误,然后这个应用程序就会崩溃,并喷出一些无法理解的错误信息。 (我会尝试在现在的任何一天加入解密堆栈跟踪到我的技能集......)在编译时捕获资源文件名错误

我在想,必须有一个更聪明的方法来处理这个问题。例如,可以有一个实用程序脚本,它通过资源目录并根据其内容构建全局常量列表。资源中的每个文件都会获得一个条目。

因此,MyResources/Icons/HomeIcon.png将由常量MyResources.Icons.HomeIcon_png表示。然后可以有像Inotify这样的东西(不知道Mac上会有什么)观察资源目录并在每次更改时重新生成常量文件。

这当然也会给资源提供很好的自动完成。

也许有这样的事情已经在Monodevelop或在线的地方?否则,我将如何去设置它?

或者也许有其他一些减轻问题的巧妙方法?

回答

1

您的主要问题是资源名称中的拼写错误没有及时发现,并且只会在应用程序实际运行时导致崩溃。

您提出的基于可用资源生成的全局常量列表的解决方案有点简洁,但据我所知这还不存在。与此同时,您可以手动构建这个全局常量列表,并创建一个单元测试,验证此列表中的所有元素都是有效资源(通过自动循环遍历它们,当然 - 将资源添加到列表不应该要求更改测试)。

通过这种方式,您可以更早地(当您运行单元测试而不是运行应用程序时)发现拼写错误,这是您最关心的问题。此外,如果您发现/编写您设想的脚本,您的应用程序代码已经准备就绪。