-2

一部のプロパティとメソッドがすべてのビューで安定しているため、アプリ クラス全体で多くのコードが繰り返されています。

私は、私が作業しているクラスを拡張して、それらのクラスに共通すると思われるものinheritすべてを自動的に拡張しようとしています。properties and methods

クラスの拡張に関するAppleガイドを調べました。しかし、私が達成できる遺伝のレベルに関して、私は混乱したままです.

の作成に成功しましCategoriesUIViewController。しかし、それは私が宣言できることだけに制限しますMethods。私は自分で宣言Propertiesして、自分の側または拡張クラスでCategoryそれらを呼び出すことはできません。Extended-Class の内外でCategory宣言して使用できるようにしたいと考えています。Properties

継承を最大限に活用してobjective-cでクラスを拡張しようとするのは初めてですが、それが可能かどうかはわかりません。何か不足していますか?

activityIndicatorView以下のコードの例として、メソッド内でインスタンス化しようとするたびに_activityIndicator認識されません。試してみまし@syntetize@dynamicが、うまくいきません

注:メソッドとプロパティの継承を達成する方法に基づいて答えを探しています。カテゴリができないことを強調表示しません(すでに試して、そこにプロパティを持てないことを知っているため)

私の試みは

#import <UIKit/UIKit.h>

@interface UIViewController (customViewController1)

@property (strong, nonatomic) UIView *activityIndicatorView;
- (void) _activityIndicator;
@end

#import "UIViewController+customViewController1.h"

@implementation UIViewController (customViewController1)


- (void) _activityIndicator {
//......
}
4

4 に答える 4

0

カテゴリは、継承よりも構成を優先するというオブジェクト指向の原則に準拠しながら、機能を追加するための優れた方法です。カテゴリはメソッドを追加するだけで、カテゴリを使用してクラスに変数を追加することはできません。クラスにさらにプロパティが必要な場合は、サブクラス化する必要があります。

于 2013-10-05T10:34:51.330 に答える