簡體   English   中英

PFObject子類作為另一個PFObject子類中的屬性

[英]PFObject Subclass as a Property in another PFObject Subclass

[來自parse.com的X-Post]

PersonPFObject子類

Address也是PFObject子類 Address有一個類型為Person@property

// Person.h

@interface Person : PFObject<PFSubclassing>
@property (retain) NSString *firstName;
@property (retain) NSString *secondName;
+ (NSString *)parseClassName;
@end

// Person.m

#import <Parse/PFObject+Subclass.h>

@implementation PP4MEAddress
@dynamic firstName;
@dynamic firstName;
+ (NSString *)parseClassName {
    return @"Person";
}

// Address.h

@interface Address : PFObject<PFSubclassing>

@property (retain) Person *deliverToPerson;
@property (retain) NSString *line1;
@property (retain) NSString *line2;

+ (NSString *)parseClassName;

// Address.m
#import <Parse/PFObject+Subclass.h>

@implementation PP4MEAddress
@dynamic deliverToPerson;
@dynamic line1;
@dynamic line2;

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

兩個子類都在App Delegate中注冊。

MyViewController的方法中,我想將它們設置為如此

例如

-(void)myMethod
{

    Address *address = [Address object];
    address.deliverToPerson.firstName = @"John";
    address.deliverToPerson.secondName = @"Smith";
    address.line1 = @"123";
    address.line2 = @"Main Street";
    [address saveInBackground];

}

執行此代碼時,類Address條目將輸入到Parse.com Web App上的Data Browser 然而,唯一列objectIdcreatedAtupdatedAtACL

我想這是因為,在引擎蓋下, Person類型的Address @property沒有被allocatedinitialised

我該如何克服這個問題?

我是否為自己寫了一個自定義settergetter

@property (retain) Person *deliverToPerson;

Address.m

如果是這樣,我注意到@propertyatomic ,因此我需要在所述settergetter編寫鎖定代碼嗎?

謝謝

我不熟悉parse.com,但我強烈認為你必須在設置關系之前分配Person對象。 就像是

Address *address = [Address object];
address.line1 = @"123";
address.line2 = @"Main Street";

Person *person = [Person object];
person.firstName = @"John";
person.secondName = @"Smith";
address.deliverToPerson = person;

[address saveInBackground];

你必須像這樣設置你的PFobject

PFObject *anotherPlayer = [PFObject objectWithClassName:@"Player"];
    [anotherPlayer setObject:@"DataValue" forKey:@"Name"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM