2010-09-19 51 views
1

如果綜合自定義類,是否爲其創建了獲取者和設置者?自定義類的獲取者和設置者

這是我創建的自定義類。

// MyClass.h 
#import <Foundation/Foundation.h> 


@interface MyClass : NSObject <NSCoding> { 
    NSString *string1; 
    NSString *string2; 

} 
@property (nonatomic, retain) NSString *string1; 
@property (nonatomic, retain) NSString *string2; 

@end 

這裏我聲明類的對象作爲屬性

// DetailViewController.h 


#import <UIKit/UIKit.h> 
#import "MyClass.h" 


@interface DetailViewController : UIViewController { 

    MyClass *myObject; 
} 
@property(nonatomic, retain) MyClass *myObject; 

@end 

在這裏,我合成的對象。

#import "DetailViewController.h" 
#import "MyClass.h" 


@implementation DetailViewController 
@synthesize myObject; 

所以它有getter和setter方法? 。

當我嘗試內部RootViewController.m

DetailViewController.myObject = [theArray objectAtIndex:indexPath.row]; 

運行此代碼我得到一個錯誤說「訪問未知‘setMyObject:’類方法的對象不能設置 - 或只讀屬性或沒有setter發現。 「

回答

4

則只有聲明所需的實例變量的屬性,然後synthesize propname;,將getter和setter方法來創建。現在,進入getter和setter什麼樣的代碼取決於什麼屬性的屬性定義(nonatomic/atomicassignretaincopy

編輯到OP的修訂問題:是一個getter/setter方法將爲DetailViewController類的myObject實例變量創建

DetailViewController.myObject = [theArray objectAtIndex:indexPath.row];

您正在嘗試設置未定義的類變量DetailViewController類型爲Class,而不是DetailViewController。在DetailViewController實例上執行相同的操作,您應該全部設置。