Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 分段控制与变量问题_Ios_Variables_Uisegmentedcontrol - Fatal编程技术网

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调用接口的唯一方法,我应该删除/更改它吗?