Xcodeで新しいObjectiveCクラス拡張ヘッダー(.hのみ)テンプレートを使用しようとしていました。方法がわかりません。さて、私はファイル->新しいファイル-> Objective cクラスの拡張ヘッダーを作成し、それに「UICodeButton」という名前を付けました。これはUIButtonから継承されます。その.hファイルに@property(読み取り/書き込み)NSInteger*cIDを書き込みました。そしてそのすぐ下の実装です。
#import <UIKit/UIKit.h>
@interface UIButton ()
@property (readwrite) NSInteger * codeID;
@property (readwrite) NSInteger * pID;
@property (readwrite) NSString * cDesc;
@property (readwrite) NSString *pDesc;
@end
@implementation UIButton
@synthesize codeID;
@synthesize pID;
@synthesize cDesc;
@synthesize pDesc;
@end
私はこれをviewcontrollerclass..soで使用しているので、(ViewCP.hとViewCP.m)ファイルがあります。.mファイルでインポートしています#import"UIButton_UICodeButton.h"ここで、このファイルでビューに書き込んでいるのは、以下をロードしました
- (void)viewDidLoad
{
NSInteger tt = (NSInteger) S_B_T;
NSLog(@" the value is %d",tt);
self.btnJobType.pID = &(tt);
}
出力:値は555です
定義でS_B_Tを555に設定しています。self.btnJobType.pID =&(tt);にヒットしたとき。エラーをスローします *キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了します。理由:'-[UIRoundedRectButton setPID:]:認識されないセレクターがインスタンスに送信されました。だから私はそれで正しいことを書いていません。pIDのsetメソッドはどこに書くべきですか?合成pIDでうまくいくと思いました。しかし、明らかにそうではありません。では、どうすれば続行できますか?「ObjectiveCクラス拡張」の例を検索しましたが、見つかりませんでした。さらに詳しい情報が必要な場合はお知らせください。ありがとう