我有以下功能:
#include <stdio.h>
__global__ void kernel() {
printf("hello world from GPU\n");
}
main() {
printf("hello world from CPU\n");
kernel<<<1, 10>>>();
cudaDeviceSynchronized();
}
我正在尝试调用此函数并传入参数:
public enum RemoteRecordChange<T: ParsedProtocol> {
case insert(T)
case update(T)
case delete(RemoteRecordID)
}
func processRemoteChanges<T: ParsedProtocol>(_ changes: [RemoteRecordChange<T>], completion: @escaping () -> ()) {
// To Something
}
调用该函数时,出现错误:
public struct Friend: ParsedProtocol {
// Has some properties
}
let friend = Friend()
// populate properties friend.username = "aUserName", etc.
编译错误:
self.processRemoteChanges([friend])
不确定我做错了什么。如果需要,我可以提供更多代码。
答案 0 :(得分:1)
你想在这里做什么没有意义:
self.processRemoteChanges([friend])
方法processRemoteChanges`应该将“更改”列表作为参数。你传递的是一个朋友列表。那有意义吗?否。
根据您的枚举,更改可以是插入,删除或更新。因此,选择其中一个并将其传递给processRemoteChange
!
如果您想处理刚刚创建的朋友的远程插入内容:
// remember the completion handler!
processRemoteChanges([.insert(friend)], completion: {...})
如果您想处理朋友的远程更新:
processRemoteChanges([.update(someFriend)], completion: {...})
如果您想处理朋友的远程删除:
processRemoteChanges([RemoteRecordChange<Friend>.delete(someID)], completion: {})