У меня есть код облако на Parse.com поиске PFObject и вернуть его на основе даты создания кода выглядит следующим образомCant получить PFObject из этого облака кода с помощью IOS SDK
Parse.Cloud.define("getJournalEntry", function(request, response) {
var currDate = request.params.currDate;
var d1 = new Date(currDate + 1000 * 60 * 60 * 24 * 1); // gets 7 days ago
var query = new Parse.Query("JournalEntry");
query.greaterThan("createdAt",currDate);
query.lessThan("createdAt",d1);
query.find({
success: function(results) {
var entry = results[0];
response.success(entry);
},
error: function() {
response.error("no entry found");
}
});
});
Я пытаюсь чтобы вызвать этот код с IOS приложения следующие
NSDate *dateOfMonth = .....;// some calculations
[PFCloud callFunctionInBackground:@"getJournalEntry"
withParameters:@{@"currDate": dateOfMonth}
block:^(PFObject *entry, NSError *error) {
if (!error) {
NSLog(entry[@"text"]);
}
else
{
NSLog(error.description);
}
}];
Когда проверил этот код с консоли, если я поставить неправильную дату он возвращает ожидаемый ответ, но в прошивке всегда происходит сбой с ошибкой при слежении
2014-07-16 18:18:44.343 Emojo[2845:60b] -[NSNull objectForKeyedSubscript:]: unrecognized
selector sent to instance 0x27f3068
2014-07-16 18:18:44.345 Emojo[2845:60b] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[NSNull objectForKeyedSubscript:]: unrecognized selector
sent to instance 0x27f3068'
В чем может быть проблема?
Это произойдет даже при отправке правильной даты или неверной даты.
Просто побочное примечание, не используйте 'query.find()', когда вы нужен только первый результат, вместо этого используйте 'first()' (обратите внимание, что вы получите единственный объект, а не массив для вашей функции успеха). –