2014-07-16 1 views
1

У меня есть код облако на 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' 

В чем может быть проблема?

Это произойдет даже при отправке правильной даты или неверной даты.

+1

Просто побочное примечание, не используйте 'query.find()', когда вы нужен только первый результат, вместо этого используйте 'first()' (обратите внимание, что вы получите единственный объект, а не массив для вашей функции успеха). –

ответ

3

Попробуйте это может быть полезно

Обновлено

NSDate *dateOfMonth = [NSDate date]; 
NSDateFormatter *dateformat = [[NSDateFormatter alloc]init]; 
[dateformat setDateFormat:@"dd-MM-YYYY"]; 

NSMutableDictionary *dateOfMonthDic = [[NSMutableDictionary alloc]init]; 
[dateOfMonthDic setValue: [dateformat stringFromDate:dateOfMonth ] forKey:@"currDate"]; 

[PFCloud callFunctionInBackground:@"getJournalEntry" 
         withParameters:dateOfMonthDic 
           block:^(PFObject *entry, NSError *error) { 
            if (!error) { 

             NSLog(entry[@"text"]); 
            } 
            else 
            { 
             NSLog(error.description); 
            } 
           }]; 

Благодаря & Приветствия ..

+0

вам также нужно преобразовать NSDate в NSString ... –

+0

Это сработало, ошибка не конвертировала дату в строку –

+0

Хорошо, наслаждайтесь! .. Приветствия! :) –

Смежные вопросы