如何为 TPushEvent 设置提供程序?

How do I set the provider for a TPushEvent?

我在我的 firemonkey 表单上声明了 TPushEvent 和 TKinveyProvider

我正在尝试在代码中手动设置 Provider 的值。我意识到默认情况下,当您将这些控件放在窗体上时,PushEvent 的提供程序 属性 会自动设置为 TKinveyProvider。但是,我正在解决一个明显的错误,我想稍后再设置它。

我是否在此代码段中正确设置了提供商 属性?

//In my form class
//...
myPushEvents: TPushEvents;
myKinveyProvider: TKinveyProvider;

//later on in one of my procedures/methods
//...
myPushEvents.Provider := myKinveyProvider;

当我稍后查看应该设置的其他值时,它似乎仍然是 nil

Provider 似乎被定义为一个 IBackendProvider 接口,我不确定我是否必须为它分配其提供者,而不是像使用简单数据类型那样整数或字符串。

是的,这是正确的方法。

myPushEvents.Provider := myKinveyProvider

在这种情况下,myPushEvents.Provider 被指定为对 myKinveyProvider 的引用。您不必进行任何特殊转换,因为 myPushEvents.Provider 需要符合 IBackendProvider interfcase 的内容,而 myKinveyProviderTKinveyProvider)会。

注意:在我的具体情况下,由于 myPushEvents.Provider 被设置为计时器完成的结果,它确实仍然是 nil

添加一个

if (myPushEvents.Provider <> nil) then
begin
  // ... use myPushEvents.Provider
end;

保护它的使用,直到在计时器 运行 之后正确设置值。