2015-02-01 1 views
1

메시지가 가리키는 PFObject 대화가 있습니다. 마지막으로 업데이트 된 대화로 tableView를 구성하고 싶습니다. 메시지를 만들 때, 부모, 포인터를 대화에 설정합니다. 대화를 저장하려고 시도했지만 upDatedAt는 변경되지 않습니다. 그것은 실제로 바뀌지 않았기 때문에 추측하고 있습니다. 강제로 업데이트 할 수있는 방법이 있습니까? 아니면 방금 자체 속성을 만들어야합니까?구문 분석, 업데이트 할 최대 업데이트

답변

1

기본적으로 자신의 질문에 답을했기 때문에 대화에서 마지막 메시지가 언제 전송되었는지 추적하려면 날짜 값이있는 자신의 필드를 만들어야합니다.

내가 아는 한 수동으로 created/updatedAt를 설정하는 것은 현재 지원되지 않으며 더 이상 생각하지 않아도됩니다. 시간이 지남에 따라 필드의 형식이 변경 될 수 있으므로 많은 응용 프로그램이 깨질 수 있습니다. 여전히 이전 "형식"을 사용하고이 필드를 잘못되었거나 지원되지 않는 값으로 설정합니다.

또 다른 아이디어는 'messagesSent'카운터 필드를 만들어 메시지가 전송 될 때마다 업데이트하는 것이고, 이것은 updatedAt 필드에 내장 된 것을 업데이트해야하며 그렇지 않은 멋진 부작용이 있어야합니다. 대화에 포함 된 메시지 수를 표시하기로 결정한 경우 비용이 많이 들고 정확한 계산 쿼리를 작성해야합니다.

+0

나는 카운터 아이디어를 좋아합니다. 아마 그렇게 할 것 같아. 앞으로는 메시지 수와 함께 레이블을 추가하는 것이 좋을 것입니다. updatedAt/createdAt는 읽기 전용이라는 것을 알았지 만 대화를 저장하지 않아도 대화 상자를 변경하지 않고도 updatedAt를 변경할 수 있다고 생각했습니다. 어쨌든 실제로 더러운 데이터를 저장하는 것 같아요. 고맙습니다. –

+0

사실, 개체가 실제로 더러운 경우에만 업데이트하고 저장합니다. –

0

허용되는 답변이 정확한지 확실하지 않습니다. 나는 정기적으로 응용 프로그램 수준의 ping을 보내는 서버 모니터링 도구에서 작업하고 있으므로 프론트 엔드에서는 마지막 ping이 전송 된 시점을 사용자에게 알려주고 있습니다. 이렇게하려면 모든 서버를 쿼리 한 다음 각 서버와 연결된 모든 응용 프로그램에 대해 ping을 수행합니다. 나는 그것이 내가 일하고 있어요 도구 꽤 눈에 보이는 부분으로 updatedAt를 업데이트 save 작품을 호출 상당히 확신

let query = new Parse.Query(Server) 
query.find() 
.then(servers => { 
    servers.forEach(server => { 
    server.save() // this is where I updated the server's updatedAt 

    // ... pingServices(servers) 

    }) 
}) 

: 아래는 내가 무슨 짓을했는지의 표현이다.

관련 문제