Objective c 目标C,可可,参考参数-ITK#可可

Objective c 目标C,可可,参考参数-ITK#可可,objective-c,xcode,cocoa,itk,Objective C,Xcode,Cocoa,Itk,我是Cocoa和XCode的新手,希望能得到您的帮助。我制作了XIB窗口的控制器,并启动了我的窗口,我有一个参数,我想我的控制器需要有,y设置参数,但当我点击一个按钮,我需要恢复参数时,值为nill或空 例如 我有 #import <Cocoa/Cocoa.h> #import "ITKExample1Filter.h" #import "Helper.h" @interface VentanaGraficaController1 : NSWindowController {

我是Cocoa和XCode的新手,希望能得到您的帮助。我制作了XIB窗口的控制器,并启动了我的窗口,我有一个参数,我想我的控制器需要有,y设置参数,但当我点击一个按钮,我需要恢复参数时,值为nill或空

例如

我有

#import <Cocoa/Cocoa.h>
#import "ITKExample1Filter.h"
#import "Helper.h"

@interface VentanaGraficaController1 : NSWindowController {
    ViewerController* _viewerController;
    IBOutlet NSComboBox *combo;
    IBOutlet NSTextField *windowLevelTextField;
    IBOutlet NSTextField *windowWidhTextField;
    NSString *cad_;
}


@property NSString *cad;
@property ViewerController* viewerController;
//Metodos
- (IBAction) converToRGB: (id)sender;
- (IBAction) initAux: (id)sender; 
- (void) initController : (ViewerController*) vc: (int) n;

@end
我使用控制器的方式如下:

VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"];

[controller setViewerController:viewerController];
[controller setViewerController:(viewerController)];
[controller setCad:@"works??"];
controller.viewerController = viewerController;

controller.cad = @"works??";
[controller showWindow:nil];

当我显示NSSAlert时,它总是以空白或空字符串的形式显示。

我尝试了很多方法,但我不知道为什么会丢失值。

看起来你没有告诉你的控制器保留你的属性

你有

@property NSString *cad;
@property ViewerController* viewerController;
默认为赋值,这意味着它们可能会在你身上消失

尝试将这些行更改为:

@property (strong) NSString *cad;
@property (strong) ViewerController* viewerController;

我试图通过引用在我的XIB控制器中设置NSString的值

@interface VentanaGraficaController1 : NSWindowController {
    ViewerController* _viewerController;
    IBOutlet NSComboBox *combo;
    IBOutlet NSTextField *windowLevelTextField;
    IBOutlet NSTextField *windowWidhTextField;
    NSString *cad_;
}


@property(strong) NSString *cad;

@end

And In my .m file I have the Action of the Button With this Code....

@implementation VentanaGraficaController1

//Parametros que sintetizaremos para manejar los valores por referencia
@synthesize viewerController = _viewerController;
@synthesize cad = cad_;

- (id)initWithWindow:(NSWindow *)window 
{
    self = [super initWithWindow:window];

    if (self) {
        // Initialization code here.

    }

    return self;
}

- (IBAction) converToRGB: (id)sender {
    NSAlert *a = [NSAlert alertWithMessageText: 
                                 cad_
                                 defaultButton:@"OK" alternateButton:@"Cancel"

                                   otherButton:nil informativeTextWithFormat:

                  @"Just a Test"];
    [a runModal];
}
在我的代码中

    VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"]; 
   controller.cad = @"My striiiiing"; 
   [controller showWindow:nil]; 
   return 0;
只是,我的意思是,我有另一个对象,我真的需要发送,但如果我不能发送一个NSString,这是出于同样的原因,我有几乎2天的时间与此


我也使用了setter,但我得到了相同的结果,当我打印NSString时,NSSAlert将字符串打印为空或零

Thank's,我将在晚上进行测试,我会再次告诉你,我不知道我做错了什么,我给我的属性添加了strong,但它仍在丢失值,在Resume中,我所做的是……解决了,我是一个傻瓜。。。我正在向我的Xib添加另一个控制器,该控制器具有与我的所有者文件相同的类型,我是一个noob:P,只需使用所有者控制器编辑它,就可以正常运行
    VentanaGraficaController1 *controller = [[VentanaGraficaController1 alloc] initWithWindowNibName:@"VentanaGraficaController1"]; 
   controller.cad = @"My striiiiing"; 
   [controller showWindow:nil]; 
   return 0;