Dan
Dan

Reputation: 345

Parse PFQuery Include key not working

I have a class, Business:

header:

#import <UIKit/UIKit.h>
#import <Parse/Parse.h>

@interface Business : PFObject <PFSubclassing>

+ (NSString *)parseClassName;
@property (retain) NSString *name;
@property (retain) NSString *shortName;
@property (retain) PFFile *logo;
@property (retain) PFFile *banner;

@end

implementation:

#import "Business.h"
#import <Parse/PFObject+Subclass.h>

@implementation Business

@dynamic name;
@dynamic shortName;
@dynamic logo;
@dynamic banner;

+ (NSString *)parseClassName
{
    return @"Business";
}

@end

And a class, Relation

header:

#import <Parse/Parse.h>
#import "Business.h"

@interface Relation : PFObject <PFSubclassing>

@property (retain) PFUser *user;
@property (retain) Business *business;

@end

implementation

#import "Relation.h"
#import <Parse/PFObject+Subclass.h>

@implementation Relation

@dynamic business;
@dynamic user;

+ (NSString *)parseClassName
{
    return @"Relation";
}

@end

I'm making a Relation Query, hoping to find Businesses that are related to certain users, like so:

PFQuery *query = [Relation query];
[query includeKey:[Business parseClassName]];
[query whereKey:@"user" equalTo:[PFUser currentUser]];

[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    NSMutableArray *businesses = [NSMutableArray array];
    if (objects.count) {
        for (Relation *relation in objects) {
            [businesses addObject:relation.business];
        }
    }

    block(businesses, objects, error);
}];

It does appear that I am successfully retrieving the businesses that I want to retrieve. However, it seems that the Business class is missing some of its columns. I made sure to make use of PFQuery's include key so that the Business class would return all of its properties, but the only property it seems to include is its object ID.

(lldb) po businesses <__NSArrayM 0x174050b60>( <Business: 0x170118810, objectId: 7Sdh8a0d8, localId: (null)> { } )

Sorry I've included so much code, I just feel like my error could be anywhere. Why isn't my query returning the full Business object?

Thanks!

Upvotes: 3

Views: 1330

Answers (1)

Dan
Dan

Reputation: 345

Ah, I was being stupid. It was all in the

[Business parseClassName]

I was requesting key "Business" instead of "business"

Upvotes: 1

Related Questions