对Cloudkit私有默认区域的查询结果是否有任何限制?我不知道为什么我只使用以下查询收到前100条记录:
let p = NSPredicate(format: "(type == 'entered') AND (timestamp >= %@) AND (timestamp <= %@)", from, to)
let q = CKQuery(recordType: self.beaconRecordType, predicate: p)
q.sortDescriptors = [NSSortDescriptor(key: "timestamp", ascending: true)]
self.privateDatabase?.performQuery(q, inZoneWithID: nil, completionHandler: { results, error in
//count = 100
println(results.count)
}
Run Code Online (Sandbox Code Playgroud)
好的.正如Edwin在答案中提到的,解决方案是使用CKQueryOperation获取初始数据块,然后使用completionBlock中的"cursor"来触发另一个操作.这是一个例子:
UPDATE
func fetchBeacons(from:NSDate, to:NSDate) {
let p = NSPredicate(value: true)
let q = CKQuery(recordType: self.beaconRecordType, predicate: p)
let queryOperation = CKQueryOperation(query: q)
queryOperation.recordFetchedBlock = fetchedARecord
queryOperation.queryCompletionBlock = { [weak self] (cursor : CKQueryCursor!, …Run Code Online (Sandbox Code Playgroud) 我有一个自定义水平集合视图,有1行,我想添加拉动刷新功能,默认情况下,它出现在我的单元格行上方.我希望用户能够从左到右拉动集合视图以激活UIRefreshControl.有任何想法吗?
提前致谢.
我有一个Web服务器,我曾经在我的iOS应用程序中获取一些数据.数据包括一个字段,itemId比如说'48501'(没有引用).我阅读商品JSON数据到我itemObject在其中itemId被定义为NSString,而不是一个NSInteger.
一切都有效,直到这一点,但我有问题,我想itemObject.itemId用isEqual:功能与另一个NSString填充的功能进行比较48501.
换句话说,两个字符串完全相同,并48501在我打印时包含.没有空间和隐藏的东西.全部isEqual:和isEqualToString:并且==在比较时报告错误.
当我转换NSStrings为NSIntegers并比较它时它起作用但并非总是如此!有时TRUECRASH没有错误捕获,只是指向该行!我看到它们打印完全相同,但if语句没有通过.
我向那些经验丰富的人展示了代码,他觉得这可能是一个错误!有没有人接触过这个?
ios ×2
ckquery ×1
cloudkit ×1
json ×1
nspredicate ×1
nsstring ×1
objective-c ×1
swift ×1
uikit ×1