Verwendung von Protokollen Objective-c
Ich muss die von Picker ausgewählten Werte an die andere Stelle vererben. Ich versuche den folgenden Code, aber es kommt ein Nullwert. Bitte überprüfen Sie, wo ich falsch liege. Ich muss String-Werte erben, die im übergeben wurdenPickerView
Bitte überprüfen Sie den Code
Picker1.h
#import <UIKit/UIKit.h>
@protocol pickerDelegate <NSObject>
-(void)didFinishPicking:(NSString *)pickedStr;
@end
@interface
@property(nonatomic,retain)id<pickerDelegate>delegate;
picker.m
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
string=[NSString stringWithFormat:@"%@",[list objectAtIndex:row]];
label.text=string;
[self.delegate didFinishPicking:string];
}
- (void)viewDidLoad
{
[super viewDidLoad];
list =[[NSMutableArray alloc]init];
[list addObject:@"a"];
[list addObject:@"b"];
}
Aktivität_1.h
#import <UIKit/UIKit.h>
#import "Picker1.h"
@interface Activity_1 : UIViewController<UIApplicationDelegate, pickerDelegate>{
@property(nonatomic,retain)Picker1 *delegate1;
@property (nonatomic,retain)NSString *str;
@end
Aktivität_1.m
- (void)viewDidLoad
{
[super viewDidLoad];
**this is how i print the value but value is null**
NSLog(@"delegate1%@",self.delegate1.string);
delegate1 = [[Picker1 alloc] init];
[delegate1 setDelegate : self];
}
-(void)didFinishPicking:(NSString *)pickedStr
{
[self setStr:pickedStr];
}