小编Ján*_*nos的帖子

CloudKit订阅有时不起作用

如果我尝试使用以下代码订阅CloudKit:

    NSPredicate *truePredicate = [NSPredicate predicateWithValue:YES];
    CKSubscription *itemSubscription = [[CKSubscription alloc] initWithRecordType:RecordType
                                                                        predicate:truePredicate
                                                                          options:CKSubscriptionOptionsFiresOnRecordCreation | CKSubscriptionOptionsFiresOnRecordUpdate | CKSubscriptionOptionsFiresOnRecordDeletion];


    CKNotificationInfo *notification = [[CKNotificationInfo alloc] init];
    notification.alertBody = @"Item Added/Updated/Deleted!";
    itemSubscription.notificationInfo = notification;

    [self.publicDatabase saveSubscription:itemSubscription completionHandler:^(CKSubscription *subscription, NSError *error) {
        if (error) {
            // In your app, handle this error appropriately.
            NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), error);
        } else {

            NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
            [defaults setObject:subscription.subscriptionID forKey:kSubscriptionID];
            [defaults synchronize];
        }
    }];
Run Code Online (Sandbox Code Playgroud)

我有时会收到此错误:

CKError 0x17558460:"服务器拒绝请求"(15/2000); server message ="内部服务器错误"; uuid = …

ios ios8 cloudkit cksubscription

9
推荐指数
1
解决办法
1936
查看次数

如何在Swift中导入QuartzCore.framework?

我需要QuartzCore.framework来将borderColor添加到文本字段中,怎么样?

cglayer ios quartz-core swift

9
推荐指数
1
解决办法
7895
查看次数

如何将NSMutableOrderedSet转换为通用数组?

我有这个for循环,p是一个NSManagedObject,fathers是一个to-many关系,所以我需要强制NSMutableOrderedSet转换[Family]但它不起作用,为什么?

for f in p.fathers as [Family] {
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述

generics ios nsorderedset swift

9
推荐指数
2
解决办法
4478
查看次数

字段'___recordID'未标记为可查询

我尝试下载具有特定recordType的所有记录,其中recordID与某个记录不匹配.

但是我收到了一个错误.任何的想法?我以为我可以将只能手动添加的字段标记为可查询.

<CKError 0x15df2a10: "Invalid Arguments" (12/2015); server message = "Field '___recordID' is not marked queryable"; uuid = ECDD0C97-550F-4DD5-942D-AF4DF8917EEB; container ID = "iCloud.com.kukodajanos.Movie-Buffs">

let query = CKQuery(recordType: "UserSetting", predicate: NSPredicate(format: "recordID != %@", CKRecordID(recordName: loggedInUserRecordName!)))

ios cloudkit

9
推荐指数
1
解决办法
3305
查看次数

多平台MBa类似于CloudKit?

我也需要在Android中实现基于CloudKit的应用程序.

哪些MBaas具有与CloudKit最相似的架构?我需要这些功能:

  • 级联删除
  • 能够从用令牌表示的日期跟踪表中的插入/更新/删除更改
  • 资产管理
  • 基于光标的记录提取/分页,跳过
  • 可扩展(不需要像操作那样的连接/应该是可能的)
  • 能够得到关于变化的推送通知
  • 初创公司的合理定价
  • 基于云
  • 没有服务器端逻辑
  • 不提供客户端存储,我有它
  • 简单的仪表板/没有性能图表等.

android parse-platform azure-mobile-services cloudkit

9
推荐指数
1
解决办法
417
查看次数

CKQuery哪里有谓词而不是字段?

我需要创建一个CKQuery谓词包含记录引用的位置,而不是记录的字段.

像这样

let query = CKQuery(recordType: "OUP", predicate: NSPredicate(format: "o = %@", "FF4FB4A9-271A-4AF4-B02C-722ABF25BF44")
Run Code Online (Sandbox Code Playgroud)

我如何设置oCKReference,而不是字段!

我收到此错误:

字段"o"的查询谓词中的字段值类型不匹配

cloudkit ckquery

8
推荐指数
2
解决办法
3410
查看次数

通过CKSubscription观察CKRecord删除不起作用

CKSubscriptiondoc说:当记录修改导致订阅触发时,服务器会向具有该订阅的所有设备发送推送通知,但对原始更改记录的设备除外.

让我们假设我有两个设备:device 1device 2从不同的iCloud帐户登录.假设两个设备都订阅了某个记录类型的记录删除.

  1. 如果 device 1创建一个记录,然后device 1删除它然后device 2得到通知 - 这是按照DOC,但..
  2. 如果device 1创建一个记录然后device 2删除它然后device 2得到通知 - 我认为它不符合DOC,并且它不做任何感觉,device 2删除它所以device 1应该通知

在设备1和设备2上设置订阅

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil))
    application.registerForRemoteNotifications()

    let defaultContainer = CKContainer.defaultContainer()
    let publicDatabase = defaultContainer.publicCloudDatabase

    publicDatabase.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in

        if error == nil {

            if subscriptions.count == 0 …
Run Code Online (Sandbox Code Playgroud)

apple-push-notifications ios ios8 cloudkit cksubscription

8
推荐指数
1
解决办法
928
查看次数

重新排序后如何重新加载tableview?行具有可变高度

我让用户重新排序行tableView.因为此事件影响内容 - 单元格中的某些数值应该更新 - 在所有其他行中,我调用reloadDatain moveRowAtIndexPath.然后发生奇怪的效果.

即触摸拖动器时,细胞似乎重叠,并且一些细胞开始上下移动.重要的是要知道,细胞高度是变化的.

奇怪的是,如果我reloadData从中删除moveRowAtIndexPath,那么所有这些现象都会消失.只有内容无效.

那么重新排序后如何重新加载数据呢?


更新:我做了什么同时重新配置单元格viewDidLayoutSubviews而不是呼叫reloadData结束moveRowAtIndexPath.它的工作效果比我预期的要高90%,但有时它们的行数仍然有些高.

override func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) {

    //..

    reorderOccured = true
}

override func viewDidLayoutSubviews() {

    if reorderOccured {

        for cell in tableView.visibleCells() as! [UITableViewCell] {

            let ip = tableView.indexPathForCell(cell)
            if ip != nil {
                self.configureCell(cell, indexPath: ip!)
            }
        }

        reorderOccured = false
    }
}
Run Code Online (Sandbox Code Playgroud)

reorderlist uitableview ios heightforrowatindexpath

8
推荐指数
1
解决办法
1875
查看次数

CKFetchNotificationChangesOperation有时不会返回UPDATE,DELETE通知

CKFetchNotificationChangesOperation返回INSERT操作,但UPDATE和DELETE并不总是如此.DELETE,UPDATE在我向App Store提交应用程序时最后工作,但现在不再了.为什么?我创建了以下订阅:

let s = CKSubscription(recordType: recordType, predicate: NSPredicate(value: true), options: .FiresOnRecordCreation | .FiresOnRecordUpdate | .FiresOnRecordDeletion)
s.notificationInfo = CKNotificationInfo()
subscriptionsToSave.append(s)
Run Code Online (Sandbox Code Playgroud)

仪表板显示所有树触发器:

在此输入图像描述

我没有使用任何alertBody,所以通知是一个所谓的无声通知,它可能是原因吗?

CloudKit提示和技巧讲师说,订阅需要从开发人员门户打开应用程序ID的APS功能.我不认为我有,但我只想要提取通知,只有在这有效时才推送.

背景能力? - 同样的

需要在app的信息plist中设置APS环境密钥. - 我想我拥有它.

ios cloudkit ckfetchnotificationchange

8
推荐指数
1
解决办法
594
查看次数

如何使用UITableViewAutomaticDimension更新单元格的高度?

我有一个UITextViewtableViewCell,并使用此处UITableViewAutomaticDimension列出的iOS 8提供的方法.

如果用户添加新行UITextView,因此textView,单元格高度应该增加,我该如何更新高度?

尝试:

cell.layoutIfNeeded()
cell.setNeedsUpdateConstraints()
Run Code Online (Sandbox Code Playgroud)

这些不起作用.

如果我重装电池,就像

tableView.reloadRowsAtIndexPaths([iindexPath], withRowAnimation: .None)
Run Code Online (Sandbox Code Playgroud)

这工作,但后来我需要处理辞职和显示键盘.我会避免它.任何解决方法?

uitableview uitextview ios

8
推荐指数
2
解决办法
1896
查看次数