2016-07-20 9 views
0

プロパティにはreadonlyというプロパティがあり、プロパティはreadonlyなので2つのクラス(例:A & B)にそのプロトコルを採用する必要があり、それらを再宣言しています私のクラス(A & B)の両方の.m Filesは、両方のクラスのすべてのプロパティのこの重複した再宣言を避ける方法がありますか?共通ファイルに@propertiesを宣言できますか?

+0

これを行う利点は何ですか?線の数が少ないという利点は、複雑さが増すことで打ち消されます。 – Droppy

+0

はい、それらをNSObjectファイルで宣言できます。次に、これらのプロパティを使用する必要があるヘッダファイルをインクルードします。関数に対しても同じことができます。 – WasimSafdar

+0

@Droppyでは、複雑さが減り、複雑さが増すことはありません。 – WasimSafdar

答えて

-1

クラスを作成し、そのクラスで読み取り専用プロパティを宣言します。クラスから継承するクラスAとクラスBを作成します。

だからあなたCommonClass.hは今、あなたはあなたがヘッダファイルに共通のプロパティ定義を配置して含めることができCommonClass

から
@interface A : CommonClass 
@interface B : CommonClass 
+0

それはプロトコルでそれらを宣言する利点を否定する。 – Avi

0

を継承し、あなたのクラスAとBを作成することができ、この

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

@interface CommonClass : NSObject 

@property (strong, readonly) <Type1> property1; 
@property (strong, readonly) <Type2> property2; 

@end 

ようになります。それは各クラスのインタフェースにあります。

共通ヘッダ:共通props.h

@property (nonatomic, retain) SomeType *common1; 
@property (nonatomic, retain) SomeType *common2; 
@property (nonatomic, retain) SomeType *common3; 

実装:クラスBの A.M

@interface A() 

// Note: you have to use include, not import, 
// to ensure the contents will be interpolated, no matter what. 
#include "common-props.h" 

@end 

@implementation A 

    // Stuff 

@end 

繰り返し

このアプローチは推奨されません。とにかく、私によって。

関連する問題