クラス メソッド内でインスタンス変数を渡すことができないことを理解しているので、2 つの違いが何であるかについて混乱することはもうありません。
したがって、私は少し立ち往生しています。
NSString
2 つのクラス メソッドがあり、どちらも引数としてa を取ることができます。
とにかくそれらを一致させることはできますか?1 つの Class メソッドには、ボタンが押された後に Safari で開く必要がある URL となる文字列が含まれているため@selector(openBrowser:)
、URL が何であるかを知る必要があります。JWKObjectView01
これを行う方法があることを教えてください??
すべてをインスタンスメソッドに変更しようとしましたが、ボタンを押すとアプリがクラッシュするため、これを解決しようとしています:-)
前もって感謝します。PS私は、2つのクラスを混在させることはできないことを理解していると言うことから始めていることを知っています-私の知る限り、何かが足りないのでしょうか?
//追加コード:
UIView クラス .h ファイル
@interface JWKObjectView01 : UIView <UIWebViewDelegate>
{
NSString *string;
NSURL *url;
NSUserDefaults *defaults;
}
+ (JWKObjectView01 *)anyView:(UIView *)anyView
title:(NSString *)title
weburl:(NSString *)webstring;
+ (void)openBrowser:(NSString *)urlString;
.m ファイル
+ (JWKObjectView01 *)anyView:(UIView *)anyView
title:(NSString *)title
weburl:(NSString *)webString
{
JWKObjectView01 *anotherView = [[JWKObjectView01 alloc] initWithFrame:CGRectMake(0,0,320,200)];
anotherView.backgroundColor = [UIColor yellowColor];
[anyView addSubview:anotherView];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(20, 20, 100, 100);
[button setTitle:title forState:UIControlStateNormal];
[button addTarget:self action:@selector(openBrowser:) forControlEvents:UIControlEventTouchUpInside];
[anotherView addSubview:button];
return anotherView;
}
+ (void)openBrowser:(NSString *)urlString;
{
//This is where I am stuck and I need the variable - weburl:(NSString *)webString -
NSURL *url = [NSURL URLWithString:urlString];
[[UIApplication sharedApplication] openURL:url];
}
.m ファイル ビュー コントローラー
-(void)viewDidLoad
{
[JWKObjectView01 anyView:self.view title:@"OPEN" weburl:@"http://google.com"];
}