Ios 分段控制与变量问题
我正试图将一个分段控制变量发送到另一个文件,但我无法获取它,我认为我非常接近,但我需要一些帮助,怎么了Ios 分段控制与变量问题,ios,variables,uisegmentedcontrol,Ios,Variables,Uisegmentedcontrol,我正试图将一个分段控制变量发送到另一个文件,但我无法获取它,我认为我非常接近,但我需要一些帮助,怎么了 --<AdSettingsTVC.m>-- @interface AdSettingsTVC () <UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource> // General Settings @property (weak, nonatomic) IBOutlet UISegment
--<AdSettingsTVC.m>--
@interface AdSettingsTVC () <UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource>
// General Settings
@property (weak, nonatomic) IBOutlet UISegmentedControl *serverControl;
@property (weak, nonatomic) NSString *server;
@implementation AdSettingsTVC
- (IBAction)getServer:(UISegmentedControl *)sender{
ANLogDebug(@"%@ setServidor | Server changed to Settings: %ld", CLASS_NAME, (long)sender.selectedSegmentIndex);
if (sender.selectedSegmentIndex == 0){
self.server = @"Server 1";
} else if (sender.selectedSegmentIndex == 1){
self.server = @"Server 2";
} else if (sender.selectedSegmentIndex == 2){
self.server = @"Server 3";
}
}
--<Another file.m>--
- (void)requestAdWithURL:(NSURL *)URL {
AdSettingsTVC *settings = [[AdSettingsTVC alloc] init];
NSString *nameServer = settings.server --> doesn't connect
self.URL = URL ? URL : [self adURLWithBaseURLString:[NSString stringWithFormat:@"http://%@", nameServer]];
}
----
@接口AdSettingsTVC()
//一般设置
@属性(弱的、非原子的)IBMOutlet UISegmentedControl*服务器控件;
@属性(弱、非原子)NSString*服务器;
@AdSettingsTVC的实现
-(iAction)getServer:(UISegmentedControl*)发送方{
ANLogDebug(@“%@SetServiceDor”服务器更改为设置:%ld”,类名称,(长)发送方。selectedSegmentIndex);
如果(sender.selectedSegmentIndex==0){
self.server=@“服务器1”;
}else if(sender.selectedSegmentIndex==1){
self.server=@“服务器2”;
}else if(sender.selectedSegmentIndex==2){
self.server=@“服务器3”;
}
}
----
-(void)requestAdWithURL:(NSURL*)URL{
AdSettingsTVC*设置=[[AdSettingsTVC alloc]init];
NSString*nameServer=settings.server-->未连接
self.URL=URL?URL:[self-adURLWithBaseURLString:[NSString-stringWithFormat:@“http://%@”,nameServer]];
}
多谢各位
PD:请原谅我的无知,我是一个乞丐似乎
AdSettingsTVC
的服务器
属性是私有的,因为您在.m
文件中的一个类别AdSettingsTVC()
中定义了它。因此,任何其他文件都无法访问它
尝试在.h
文件中将其公开为
@interface AdSettingsTVC:UIViewController
@property (strong, nonatomic) NSString *server;
另外,请注意
strong
属性如果希望公开访问服务器变量(由其他对象访问),则必须在.h文件中声明该属性
所以在这种情况下,你应该移动
@property (weak, nonatomic) NSString *server;
进入AdSettingsTVC.h.不起作用:/,这是另一个文件,self不用于调用局部变量?谢谢你,我意识到了。我对我的答案做了相应的更改。太好了:)现在我可以通过settings.server访问,但为null,知道我缺少什么吗?你正在执行alloc/init,但似乎正在创建一个新对象,对吗?创建的第一个AdSettingCv在哪里?您在UISegmentedControl上单击的那一个?我使用alloc是因为我认为这是不使用@implementation调用接口的唯一方法,我应该删除/更改它吗?