如何從我的NSWindowController
中的model-class中調用數組?該valueArray
設置在AppDelegate中,以ValueItem
模型類:model from model返回NULL
@interface AppDelegate : NSObject <NSApplicationDelegate>
{
ValueItem *vi;
ResultWindowController *rwc;
IBOutlet NSArrayController *outArrayController;
}
和
@implementation AppDelegate
....
- (IBAction)pushOk:(NSButton *)sender
{
self->vi = [[ValueItem alloc]init];
[vi setValueArray:[outArrayController arrangedObjects]];
NSLog(@"vi.valueArray is:%@", vi.valueArray);
if (rwc)
{
[rwc close];
}
rwc = [[ResultWindowController alloc] init];
[rwc setShouldCascadeWindows:NO];
[rwc showWindow:self];
}
調用NSLog(@"vi.valueArray is:%@", vi.valueArray);
返回數組內容就好了。但是,當我嘗試在我的其他NSWindowController
使用它總是NULL
返回:
@interface ResultWindowController : NSWindowController
{
ValueItem *vi;
NSNumber *resultAverage;
}
和
@implementation ResultWindowController
@synthesize resultAverage;
...
- (IBAction)pushChange:(NSButton *)sender
{
[self calculateAverage];
[_outputLabel setDoubleValue:[resultAverage doubleValue]];
NSLog(@"resultAverage is:%@", resultAverage);
NSLog(@"vi.valueArray is:%@", vi.valueArray);
}
-(void)calculateAverage
{
resultAverage = [vi.valueArray valueForKeyPath:@"@avg.nomValue"];
}
我無法找到缺少的環節?我在這裏錯過什麼? 謝謝!
你好塞爾吉奧,對不起,我還是新來的東西。我只是想'ValueItem * vi'我只是讓模型可以訪問而不需要創建一個不同的模型。我怎樣才能實際訪問'ValueItem'的同一個實例,還是需要其他策略? – JFS
請看我的編輯。 – sergio
太棒了!非常感謝!它的工作原理,但你可以讓我知道爲什麼'[rwc setVi:self> vi];'阻止創建一個獨立於'ValueItem'的新? – JFS