gpt4 book ai didi

objective-c - 在 Interface Builder 实例化类之间传输数据

转载 作者:行者123 更新时间:2023-12-03 17:27:29 24 4
gpt4 key购买 nike

我正在编写一个简单的 Cocoa 应用程序,它获取一些文件 URL(通过拖放),然后对这些文件进行处理。我有一个类(NSView 的子类),它控制拖放机制,并通过 Interface Builder(使用“自定义类”选项)分配给 NSView。文件 URL 进入 NSMutableArray。

然后我有另一个类应该获取这些文件 URL 并用它们做一些事情。该类还有一个连接到调用“do stuff”方法的 NSButton 的 IBAction。

我的问题是,我怎样才能从“拖放”类中的 NSMutableArray(或其本身的数组)获取数据,以及什么被认为是最好的方法,到“做东西”类(class)。我了解键值编码、绑定(bind)和核心数据等概念,但我对它们并不熟悉,并且不想学习它们并意识到它不适合我的需求。

任何有关我应该在这里做什么以及如何开始的帮助将不胜感激。

最佳答案

如果您的应用程序只处理一个(或很少)数组,您可以轻松地将它们写入一个类中的 NSUserDefaults 中,然后从另一个类中检索它们。检索后,您可以根据需要更改它并将其写回 NSUserDefaults。这样做的另一个好处是可以将数据从一个 session 保留到另一个 session 。有些人可能会说这有点矫枉过正,但对于少量数据来说,它的效果非常好。

写入 NSUserDefaults:

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

//Change this line depending on object you arr saving (eg Array)
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstHome"];

[standardUserDefaults synchronize];

从 NSUserDefaults 获取:

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

//Change this line depending on object you are saving (eg Array)
BOOL tempBOOL = [standardUserDefaults integerForKey:@"firstHome"];

肯定还有其他选择,但像 CoreData 这样的东西对于仅一组链接来说就太过分了。

关于objective-c - 在 Interface Builder 实例化类之间传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18378084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com