Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8081035
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T16:35:58+00:00 2026-06-05T16:35:58+00:00

In the code I’m testing, I have an NSPredicate and I’m filtering an array:

  • 0

In the code I’m testing, I have an NSPredicate and I’m filtering an array:

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"status == %d || status == %d", FVFileReadyStatus, FVFileWaitingStatus];
[myArray filterUsingPredicate:predicate];

I have a method to return a mock, which will eventually get added to myArray. FVFileStatus is a typedef enum. Because I’m using a predicate, the predicate is calling valueForKey, so I need to stub that out:

-(id)mockFVFileHandleWithStatus:(FVFileStatus)status {
    id mock = [OCMockObject mockForClass:[FVFileHandle class]];
    [[[mock stub] andReturnValue:OCMOCK_VALUE(status)] valueForKey:[OCMArg checkWithSelector:@selector(isEqualToString:) onObject:@"status"]];
    return mock;
}

When I run my test, it fails on the filter. I get an NSInvalidArgumentException - Reason: Return value does not match method signature.

I’m not sure how to setup the stub so it will work with an NSPredicate.

Can anybody help?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T16:36:01+00:00Added an answer on June 5, 2026 at 4:36 pm

    Very close. The right way to set up the stub is as follows:

    [[[mock stub] andReturn:OCMOCK_VALUE(status)] valueForKey:[OCMArg checkWithSelector:@selector(isEqualToString:) onObject:@"status"]];
    

    This might seem counter-intuitive at first, because the attribute you are trying to stub is of type int, and because of that you’d expect to have to use andReturnValue:.

    However, the actual method that is being called on the mock object is not status but valueForKey: and the return type for the latter is id. So, when using andReturnValue: the stub is set up to return a primitive value and then complains when it’s asked to provide an object. By the way, the error message could be clearer, I’ll look into that.

    You can still use the OCMOCK_VALUE macro to set up a value object, but by using andReturn: you’re telling the stub to return that value object, and not the primitive that’s wrapped in it, and that is what is compatible with valueForKey:‘s return type.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Code Igniter version '2.0.3' Jquery 1.7 Jquery History plugin I have a CodeIgniter app
I have a string like this: La Torre Eiffel paragonata all’Everest What PHP function
Code is at: http://jsfiddle.net/m9yen/ Issue: I have multiple LI's listing FOOD ITEMS Each li
I have this code to decode numeric html entities to the UTF8 equivalent character.
I have this code: - (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock { NSString *someString = [[NSString
Code example: http://jsfiddle.net/MhEPw/1/ I have two jQuery Deferred objects. I want to have more
Code can be found here: http://www.myhorizon.ca/client_central/sortable_test.php Hello folks of Stackoverflow, I have a list
Code: <html xmlns=http://www.w3.org/1999/xhtml> <head> <title>Unusual Array Lengths!</title> <script type=text/javascript> var arrayList = new Array();
Code I have: cell_val = CStr(Nz(fld.value, )) Dim iter As Long For iter =
Code and preview: <html> <head> <title>Testing some CSS</title> <style type=text/css> .dDay { font-size:205% }

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.