我一直在我的项目中使用核心数据。几天前,我发现保存在数据库中的一些记录没有显示在应用程序UI中。我已经跟踪了它,发现当我使用NSPredicate过滤掉空字符串时,它们根本就没有被取出。所有这些都以非字母字符开头。
为了澄清问题,我创建了一个示例项目并将一些示例数据添加到数据库中。假设它们是“Sample”,“+ sample”,“Sample +”。
这是我用来过滤掉空字符串的代码片段。 “text”是字符串属性的名称,moc是NSManagedObjectContext实例。
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"BasicEntity"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"text.length > 0"];
[request setPredicate:predicate];
NSArray *samples = [moc executeFetchRequest:request error:&error];
结果数组只包含2个实体,即“Sample”和“Sample +”。
我甚至在包含上面示例字符串的简单数组上尝试了相同的谓词(当然,使用self.length而不是text.length),并且我正确地得到了所有3个。
我想知道是否有人遇到同样的问题。或者我在使用核心数据时遗漏了什么? 在iOS 7.0.3模拟器和测试器上测试7.0.6 iPad Air。
更新:正如另一个帖子所回答的那样,我使用正则表达式解决了这个问题。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"text MATCHES %@", @".{1,}"];
不过,我相信我使用的原始谓词是有效的。我将向Apple提交一个错误以获取他们的意见。
答案 0 :(得分:4)
这就是你想要的
<body style="background:navy; color:white;">
<form id="myForm">
<h1>You Are Uploading Files to Adam</h1>
<label>Name of Uploader (You)</label>
<input type="text" name="myName" placeholder="Full Name">
<label>Brief Description of File</label>
<input type="text" name="fileName" placeholder="Session title, etc.">
<input type="file" name="myFile">
<input type="submit" value="Upload File"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
<p style="color:yellow">Depending on the total size of your file uploading may take a few moments...</p>
</form>
</body>
<div id="output"></div>
<script>
function fileUploaded(status) {
document.getElementById('myForm').style.display = 'none';
document.getElementById('output').innerHTML = status;
}
</script>
<style>
input { display:block; margin: 20px; }
</style>
如果您还需要检查[NSPredicate predicateWithFormat:@"%K != %@", @"text", @""]
/ nil
,请执行以下操作:
NULL
答案 1 :(得分:-2)
试试这个:
setTimeout(function(ev) {
$("#video")[0].src += "&autoplay=1";
ev.preventDefault();
}, 5000);