2013-06-30 36 views
-2

我已經聲明瞭一個名爲Squad的屬性,但是當我發送[self getSquad]時,我得到「SquadViewController沒有可見的@interface聲明選擇器'getSquad'」。爲什麼我的@property沒有自動獲取?

SquadViewController.h:

#import "FlipsideViewController.h" 
#import "Squad.h" 

@interface SquadViewController : UIViewController <FlipsideViewControllerDelegate, UIPopoverControllerDelegate> 

@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext; 

@property (strong, nonatomic) UIPopoverController *flipsidePopoverController; 

@property (nonatomic, retain) IBOutlet UILabel *squadNameLabel; 

@property Squad *squad; 

- (IBAction)updateTitleWithName:(id)sender; 

@end 

SquadViewController.m:

#import "SquadViewController.h" 

@interface SquadViewController() 

@end 

@implementation SquadViewController 

@synthesize squadNameLabel; 
@synthesize squad; 

... 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    if (![self getSquad]) //<--THIS IS WHERE THE ERROR IS 
    { 
     [self setSquad:[Squad squadWithName:@"New Squad"]]; //<-- NOT HERE, SO THE SETTER SEEMS TO EXIST 
    } 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

... 

我認爲 「@synthesize隊」 將產生getSquad和setSquad,所以我很困惑。

這裏是小隊的代碼,如果由於某種原因,我沒有得到它的相關(我是新的目標C,我仍然覺得它很混亂(我來自java背景)):

Squad.h:

#import "SquadBuilderObject.h" 

@interface Squad : NSObject 

@property NSString *name; 

+ (id) squadWithName:(NSString*)name; 

@end 

Squad.m:

#import "Squad.h" 

@implementation Squad 

@synthesize name; 

+ (id)squadWithName:(NSString *)name 
{ 
    Squad *newSquad = [[Squad alloc] init]; 
    [newSquad setName:name]; 
    return newSquad; 
} 

@end 
+0

Objective-C不使用'get'前綴,而是使用非特定模式的任何東西。你不應該用'get'作爲前綴。 – bbum

回答

8

標準吸氣名爲squad屬性squad,不getSquad

「get ...」命名通常保留給參考返回的內容(例如- (BOOL)getSquad:(Squad **)outSquad)。

+0

Spanks,查克! :D – mazz0

+0

你也不需要再合成 –

+0

@waf - 我有點以爲我沒有,但我把它放在什麼時候不工作。所以我只是把它放在外面,而且它是自動完成的?如果我想要與舊版本的iOS兼容,是否需要保留它? – mazz0

相關問題