<CVImageProcessView.h>ーーーーーーーー
//どの画像処理をするのかを決定するようなUIなどの機能を持つクラス@interface CVImageProcessView: UIView{
UIImageView *imageView; //クラス変数
UIButton *btn;
}
@property(nonatomic, retain)IBOutlet UIImageView *imageView;
@property(nonatomic, retain)IBOutlet UIButton *btn;
-(IBAction)pushBtn:(id)sender; //ボタンが押されたら(アクション実行)呼ばれる
@end
<CVImageProcessView.m>ーーーーーーーー
#import "CVImageProcessView.h"@implementation CVImageProcessView
@synthesize imageView; //ゲッターとセッターを自動生成
@synthesize btn;
-(IBAction)pushBtn:(id)sender
{
//インスタンスを作らずにメソッドを呼び出す
BOOL Call = [CVImageProcessor doSomeImageProcessClass:[imageView image]];
//インスタンスを作ってからメソッドを呼び出す
CVImageProcessor * imageProcessor = [[CVImageProcessor alloc]init];
BOOL Call__ = [imageProcessor doSomeImageProcessInstance[imageView image]];
}
@end
<CVImageProcessor.h>ーーーーーーーー
//画像処理をするためのクラス@interface CVImageProcessor : NSObject {
UILabel *label;
}
+(BOOL)doSomeImageProcessClass:(UIImage *)image; //クラスメソッド
- (BOOL)doSomeImageProcessInstance:(UIImage *)image; //インスタンスメソッド
@end
<CVImageProcessor.m>ーーーーーーーー
{
lable.text = @"doSomeImageProcessClass is called";
/*Imageを使った画像処理*/
return YES;
}
- (BOOL)doSomeImageProcessInstance:(UIImage *)image; //インスタンスメソッド
{
lable.text = @"doSomeImageProcessInstance is called";
/*Imageを使った画像処理*/
return YES;
}
って感じですかね。
さー、間違いはどこだ!!!www
って言うのは冗談で、関数の戻り値の頭に+がついている
+(BOOL)doSomeImageProcessClass:(UIImage *)image//クラスメソッド
がありますよね。
これの中で、
lable.text = @"doSomeImageProcessClass is called";
という処理をしていますが、これが出来ません!
普段C++を使っているのもあるのか無いのか、これが意味不明でした。。
(C++だとクラスメソッド使えば、アクセスできるやん!ってことで。)
でも、簡単にいうと
+がついてる関数→クラス変数にアクセス出来ません。
ーがついてる関数→クラス変数にアクセス出来ます。
(もちろんどっちの関数にしろ、スコープ内で変数は宣言、使用できます。)
て感じらしいです。
本には、ちゃんとインスタンスがどうのこうの書いてありますが、
知識でしかなくて実際これで困らないと理解できませんでした(´ー`)
0 件のコメント:
コメントを投稿