【问题标题】:Is having a NSFetchRequest with an NSPredicate supported in MonoTouchMonoTouch 支持 NSFetchRequest 和 NSPredicate
【发布时间】:2011-10-13 19:29:07
【问题描述】:

我使用 NSPredicate 尝试了以下操作,但没有得到我期望的结果:

NSFetchRequest request = new NSFetchRequest ();
request.Entity = NSEntityDescription.EntityForName("Entity", managedObjectContext);

NSSortDescriptor sort = new NSSortDescriptor ("date", false);
request.SortDescriptors = new NSSortDescriptor[1] { sort };
request.Predicate = NSPredicate.FromFormat("stringProperty == %@", new NSObject[1]{new NSString("someString")});

error = null;
NSObject[] results = managedObjectContext.ExecuteFetchRequest (request, out error);

当前稳定版本的 MonoTouch (5.0) 是否支持 NSPredicate,还是我做错了什么?

【问题讨论】:

  • 很难用 sn-p 来判断。你需要发布一个独立的测试用例
  • 感谢您的回复。上面的 sn-p 在没有设置谓词的行的情况下效果很好。一旦我设置了谓词,我就不会从获取中得到任何结果(当我希望从数据和正在设置的谓词中得到任何结果时)。我认为要么不支持谓词,要么我错误地创建了谓词。有没有在 MonoTouch 中使用谓词的示例?
  • 我快速浏览了一下,没有找到任何示例代码,所以它可能是一个错误(它看起来不是很常用)。您能否向我们提供(在此处或通过在 bugzilla.xamarin.com 上填写错误报告)一个小型、独立的测试用例,以便我们尝试查明问题?
  • 我记录了一个错误 (bugzilla.xamarin.com/show_bug.cgi?id=2282)。

标签: c# iphone xamarin.ios nspredicate nsfetchrequest


【解决方案1】:

哇,您在这里真的节省了编程行数。 用那个sn-p很难说,但是...... 我最好的建议是将这些行分成更多行,例如

NSPredicate *myPredicate = ...
if (myPredicate) {
NSLog (@"Predicate exists");
}

并继续这样逐行进行,以确保您获得正确的反馈。 我就是做这个的。可能会有所帮助

【讨论】:

  • 那么,您是说在 MonoTouch 中为获取请求设置谓词对您有用吗?
猜你喜欢
  • 2018-12-28
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多