0

Im trying populate a UITableView using retrieved objects from Parse.
The items are retuned ok, when I try and use them for my _appliances NSArray I get:

'NSInvalidArgumentException', reason: '-[__NSCFString count]: unrecognized selector sent to instance

Console prints my _appliances array as:

014-07-27 18:24:16.249 myapp[15839:60b] Fan
2014-07-27 18:24:16.249 myapp[15839:60b] kettle 
2014-07-27 18:24:16.250 myapp[15839:60b] Projector 

viewDidLoad:

    PFQuery *queryApplianceClass = [PFQuery queryWithClassName:@"savedAppliances"];

    [queryApplianceClass selectKeys:@[@"appliance"]];

    [queryApplianceClass orderByDescending:@"updatedAt"];

    queryApplianceClass.limit = 100;

    [queryApplianceClass findObjectsInBackgroundWithBlock:^(NSArray *applianceObjects, NSError *error) {
        if (!error) {


            for (PFObject *applianceList in applianceObjects) {
                 NSLog(@"%@", applianceList[@"appliance"]); //Prints to console as above

                  //Array of Appliances from database
                 _appliances = applianceList[@"appliance"]; 

            }


        }
        else {

            NSLog(@"Error: %@ %@", error, [error userInfo]);
        }
      }];

1 Answer 1

1

You keep assigning an NSString value to the _appliances array variable. I believe you want this:

[queryApplianceClass findObjectsInBackgroundWithBlock:^(NSArray *applianceObjects, NSError *error) {
    if (applianceObjects) {
        NSMutableArray *appliances = [NSMutableArray array];
        for (PFObject *applianceList in applianceObjects) {
             NSLog(@"%@", applianceList[@"appliance"]); //Prints to console as above
             //Array of Appliances from database
             [appliances addObject:applianceList[@"appliance"]]; 
        }
        _appliances = appliances;
    }
    else {
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
  }];

Also note that you should only check error if applianceObjects is nil.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.