我正在尝试编写一个应该显示一些数据的应用程序。有问题的数据来自我们的代码中的不同模块(用C编写,而不是ObjC),并且由于各种原因由字符串标识,而不是整数或其他形式的常量。胶水代码后,我有一个像这样在我的AppDelegate传入方法:按字符串在NIB内搜索NSView
-(void)newstringdata:(NSString*)data withLabel:(NSString*)label;
此方法应始终以data
值,并将其设置为文本在UI中的特定标签。问题是,哪个标签。
我当然可以创建一个NSDictionary
并在运行时用方法中的label
参数的可能值填充它,并参考插座,但这看起来有点丑陋和低效;它需要我维护网点,笔尖和NSDictionary
- 初始化代码。
相反,如果可能的话,我想在某处设置界面设计器中的属性,然后根据传递的标签在我的newstringdata:withLabel:
方法中进行查找,该标签返回NSLabel
。
这可能吗?如果是这样,我该怎么做?
如何是你的设计在某种程度上依赖于通过识别标签字符串的看法,当你还没有想出如何标签串分配到的意见,甚至如果你可以的话?也就是说,您展示的方法的调用者在哪里首先获得标签字符串?它如何确定这些标签字符串对应于视图?什么是一组可能的标签字符串?等。 –
我从另一个模块获取数据,该模块通过名称来识别数据,这是一个字符串。这不是我控制的东西;这是我如何获得数据。 –
没错,但是这些数据与你的观点无关。我建议您将数据存储在控制器的字典属性中。然后,通过该属性将视图绑定到控制器,如果有的话,视图有意义的值。也就是说,通过让视图/绑定找到数据来颠倒问题,而不是根据数据找到视图。 –