let parent = path[row-1]
let child = path[row]
let indexOfChild = matrix[parent.objectId!]!.index(of: child)
print("indexOfChild = \(indexOfChild)")
print("keyValuePair = \(matrix[parent.objectId!]!)")
print("child = \(child)")
let indexAfter = matrix[parent.objectId!]!.index(after: indexOfChild!)
この情報はコンソールに表示されています。Swift - objectIdが正確であっても、カスタムオブジェクトはゼロになります。
"child"(これはargumentText: "example"の引数オブジェクト)がkeyValuePairに存在することがわかります(同じobjectIdを持ちます)。それでも、keyValuePairのインデックスはコンソールには表示されません。どうやら、単なる違いは、「子」は「0x608000333f60」の隣にあり、keyValuePairの第2引数オブジェクトは「0x600000321a40」です。
私はこれらの目的およびそれらがどのように計算されますを知らないが、これらのコードが互いに
異なっているので、インデックスがnilを発見された私は、あまりにものためにそれを修正しようとしているように思えます今は長い。誰かが私を助けてくれますか?
indexOfChild = nil
keyValuePair = [<Argument: 0x608000334e60, objectId: IG9ekqMRw9, localId: (null)> {
ACL = "<PFACL: 0x60800042f200>";
argumentText = "the only thing is I can't get over how I feel when it ";
creatorId = hWRXoRvnYd;
level = 4;
parentId = j7GkpwUKsm;
reach = 0;
threadId = Dtq632QYJ2;
}, <Argument: 0x600000321a40, objectId: 56AsB1juNP, localId: (null)> {
ACL = "<PFACL: 0x600000235440>";
argumentText = "example ";
creatorId = hWRXoRvnYd;
level = 4;
parentId = j7GkpwUKsm;
reach = 0;
threadId = Dtq632QYJ2;
}]
child = <Argument: 0x608000333f60, objectId: 56AsB1juNP, localId: (null)> {
ACL = "<PFACL: 0x608000235540>";
argumentText = "example ";
creatorId = hWRXoRvnYd;
level = 4;
parentId = j7GkpwUKsm;
reach = 0;
threadId = Dtq632QYJ2;
}
fatal error: unexpectedly found nil while unwrapping an Optional value
感謝しかし、私は非常にあなたがユニークなIDによって何を意味するのか取得できませんでした..私は自動的に私が作成するたびに与えられているにObjectIdを(考えています新しいインスタンス)は、t彼はインスタンスの残りの部分。私が間違っている?私がバックエンドからオブジェクトを照会するときに単にメモリアドレスの場所をフィルターにかける方法はありませんか? –
はい、objectIdを一意のIDとして使用できます。あなたは、上記の答えに追加するコードセグメントのようなものを使って、一致するobjectIDを持つ子を見つけることができます。 – Fahim
ありがとうございます。私は一日中このことを考え出し、ついにあなたに感謝してくれました:) –