【发布时间】:2017-04-21 17:43:26
【问题描述】:
考虑以下代码:
在运行时,第一个断点实际上是跳过。我的GetInstance() 从未被调用,变量realm 始终为空。无论下面黄线上方存在什么代码,都不会被调用,并且声明的任何变量都只是它们的默认值。
要解决此问题,只需将 if 行更改为调用 realm.All<UserCredential>().ToList().FirstOr.... 即可解决此问题。第一个断点被调用,变量realm被正确初始化等等
这直到最近才成为问题; iqueryables 在过去几周一直运行良好。最近只有一件事发生了变化:我在这个 .csproj(它是一个 pcl)的根目录中添加了一个名为“Engines”的目录,它对 .csproj 做了一个非常微妙的改变:
<UseMSBuildEngine>true</UseMSBuildEngine> 已添加。
我怀疑我通过添加“引擎”目录破坏了某些东西。有了这些知识,我更改了我的“Engines”目录名称,重命名了其中的文件,并从 .csproj 中删除了这个添加的属性。这没有任何区别。
是的,我已经清理、重置 iOS 模拟器、清理派生数据、重新启动 Xamarin Studio、重新启动 osx、将我的头撞到桌子上等等。
我对 Xamarin(或 Realm?)的稳定性感到非常紧张。如果添加一点目录就可以通过跳过行代码悄悄地危及我的整个项目,我们还有什么希望?
【问题讨论】:
-
您使用的是哪个 IDE 和版本以及您使用的是哪个 Xamarin 版本/频道?
-
我们在最新的 Xamarin Studio 社区稳定频道(6.3 build 863)
-
并使用最新的Realm 1.2.0
-
根据我的经验,Xamarin Studio 偶尔会遇到 iOS 问题,尤其是断点问题,尤其是当您在引用的其他项目中放置断点时。但是,您通常可以通过删除项目中 bin 和 obj 文件夹中的所有内容以及所有被引用的项目然后重新构建来解决此类问题。
-
我们也有同样的经历。我们确实清除了我们的 bin 和 obj,甚至尝试消除 xCode 的派生数据(尽管我不确定 Xamarin 构建会导致 xCode 写入它)。这肯定是由我在答案中提到的问题引起的。不过感谢您的评论!