【发布时间】:2017-09-28 13:55:20
【问题描述】:
我是 Objective-C 的新手,我正在努力寻找将 NSArray 值从一个 NSView 传递到另一个 NSView 的正确方法。我的代码如下所示:
NSViewOne:
NSLog(@"%@", arrayValues); // 10, 20, 30
NSViewTwo *displayValues = [[NSViewTwo alloc] init];
[displayValues showValuesFromOne:arrayValues];
NSViewTwo:
- (void)showValuesFromOne:(NSArray *)sender {
NSArray *arrayValues = sender;
NSLog(@"%@", arrayValues);
}
在 NSViewOne 中显示数组值,在 NSViewTwo 中我得到 (null)。
【问题讨论】:
-
第二个视图是在 xib 还是故事板中?如果是,则在第一个 sn-p 中创建的视图是一个完全不同的实例。顺便说一句:
getValues对于实际上设置某些东西的方法来说是一个令人困惑的名称。 -
@vadian:两个 NSView 都是两个文件中的独立类,它们显示在 .nib 窗口 (osx) 中。我也重命名了这些方法以减少混乱。
-
然后您需要实际引用来查看 .nib 中的视图 2,例如使用
IBOutlet。[[NSViewTwo alloc] init]创建一个新的(不同的)实例。 -
@vadian:如果我只是想将一个值传递给 NSViewTwo 中的一个方法,但那不是它稍后使用的 gui 的一部分呢?
标签: objective-c xcode nsarray sender