私は Objective-C を初めて使用し、委譲の概念をまだ明確に把握していない可能性がありますが、それを使用してそれを実現したいと考えています。アプリに委任を実装しようとしています。
アイデアは、初期化TableViewController
にNSMutableArray
使用したクラスがあるということです。クラスTableView
からこの配列を再初期化する必要があります。DropDown
委任を使用してそれを実行しようとしましたが、まだ実行できませんでした。何か問題がある可能性があります。クラスに渡しTableViewController
てDropDown
、オブジェクトを介してテーブルを編集できます。しかし、委任を使用してそれを実現したいと思います。
これが私のTableViewController.h
@protocol TableViewControllerdelegate;
@interface TableViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,MFMessageComposeViewControllerDelegate>
{
ControllerType controllerType;
}
@property (retain, nonatomic) IBOutlet UITableView *tableView;
@property (retain, nonatomic) NSMutableArray *dataArray;
@property (retain, nonatomic) NSArray *imageArray;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andType:(ControllerType)type;
- (void)sendSMS: (NSString *) sms;
@end;
これが私のDropDown.h
#import "TableViewController.h"
@interface DropDownExample : UITableViewController <VPPDropDownDelegate, UIActionSheetDelegate> {
@private
VPPDropDown *_dropDownSelection;
VPPDropDown *_dropDownSelection1;
VPPDropDown *_dropDownSelection2;
VPPDropDown *_dropDownSelection3;
VPPDropDown *_dropDownSelection4;
VPPDropDown *_dropDownDisclosure;
VPPDropDown *_msg;
VPPDropDown *_dropDownCustom;
NSIndexPath *_ipToDeselect;
}
+ (bool) uncheck:(UITableViewCell *) cell andData:(NSString *) data;
- (void)reloadData;
@end
そして、これが私のtableviewオブジェクト配列を編集しようとする方法です
TableViewController *newControll = (TableViewController*)[UIApplication sharedApplication].delegate;
NSMutableArray *arrayWithInfo = [[NSMutableArray alloc] initWithObjects:AMLocalizedString(@"Status", nil),AMLocalizedString(@"Call", nil),AMLocalizedString(@"Location", nil),AMLocalizedString(@"Control", nil),AMLocalizedString(@"Sim", nil),AMLocalizedString(@"Object", nil),AMLocalizedString(@"Info", nil),nil];
newControll.dataArray = arrayWithInfo;
[arrayWithInfo release];
[newControll.tableView reloadData];
実行していますが、'-[AppDelegate setDataArray:]: unrecognized selector sent to instance
このコードに到達した後です。