我正在使用Monotouch创建我的第一个iOS应用程序,并且我从我的资源目录中加载了大量图像。我偶尔会在文件名中输入一个拼写错误,然后应用程序会崩溃,我会发出一些无法理解的错误消息。 (我现在会尝试在任何一天将解密堆栈跟踪添加到我的技能组合中......)
我在想,必须有一种更聪明的方法来处理这个问题。例如,可以有一个实用程序脚本,该脚本遍历资源目录并根据其内容构造全局常量列表。资源中的每个文件都有一个条目。
这样,MyResources / Icons / HomeIcon.png将由常量MyResources.Icons.HomeIcon_png
表示。然后,人们可以拥有类似Inotify(不知道Mac上会是什么)的东西,观察资源目录并在每次更改时重新生成常量文件。
这当然也可以为资源提供良好的自动完成功能。
也许已经有类似的东西已经在Monodevelop或在线某处?否则我该如何设置呢?
或许还有一些其他智能方法可以缓解这个问题?
答案 0 :(得分:1)
您的主要问题是资源名称中的拼写错误未及早发现,并且只会在实际运行应用时导致崩溃。
您建议的基于可用资源生成的全局常量列表的解决方案有点整洁,但据我所知,这还不存在。
同时,您可以手动构建此全局常量列表,并创建一个单元测试,以验证此列表中的所有元素是否为有效资源(通过自动循环它们,当然 - 将资源添加到列表中不应该要求改变测试。)
通过这种方式,您可以更早地捕获拼写错误(当您运行单元测试而不是运行应用程序时),这是您最关心的问题。此外,如果您找到/编写您想象的脚本,您的应用程序代码已经准备好了。
答案 1 :(得分:0)
我为您提交了Xamarin bugzilla的增强错误:https://bugzilla.xamarin.com/show_bug.cgi?id=3760
答案 2 :(得分:0)
所以我花了四个宝贵的时间来制作这个小蟒蛇脚本,解决了我的问题。目前,这是解决我问题的最佳方案。