如何在Cocoa中使用Bindings CoreData实现iTunes风格的Source-List?

如何在Cocoa中使用Bindings CoreData实现iTunes风格的Source-List?,第1张

概述让我们说,为了说明,我在 Cocoa中编写了一个iTunes克隆应用程序,该应用程序由CoreData支持.为简化起见,假设有两个“部分”,“图书馆”,包括音乐,电影,广播等.第二部分称为“播放列表”,其中包含用户生成的播放列表(只是哑列表,而不是智能播放列表) . 所以SourceList本身通常会用NSOutlineView实现,这通常很简单. 源列表的“库”部分实际上并不包含用户生成的任何内 让我们说,为了说明,我在 Cocoa中编写了一个iTunes克隆应用程序,该应用程序由CoreData支持.为简化起见,假设有两个“部分”,“图书馆”,包括音乐,电影,广播等.第二部分称为“播放列表”,其中包含用户生成的播放列表(只是哑列表,而不是智能播放列表) .

所以SourceList本身通常会用NSOutlineVIEw实现,这通常很简单.

源列表的“库”部分实际上并不包含用户生成的任何内容,只包含应用程序的“功能”(实质上),其中“播放列表”部分仅包含用户创建的自定义列表.如何用Bindings和CoreData做到这一点?是否可以将播放列表部分绑定到用户的数据,并具有显示库功能的自定义方式?

我一般都会使用Bindings和AppKit弄湿我的脚,所以请耐心等待.我很感激帮助.我应该补充一点,我的目标是10.6及以上.

解决方法 我没有很多核心数据的经验,但我已经广泛使用了Cocoa的绑定.根据我的经验,这样的东西最适合用于“手动”调整的对象的中间NSArray.

作为一个例子,我想你会有一个用户生成的自定义NSArray播放列表,你也会有一个单独的NSArray包含你的标准库项目.使用此设置,我将在您的一个名为combinedArray的控制器中创建一个属性,该属性将绑定到您的NSOutlineVIEw.然后,我将用户生成的播放列表数组绑定到控制器,并且每当修改播放列表数组时,控制器中的某些代码会自动更新组合数组.

这是一个快速模型:

TheController.h

@interface TheController : NSObject{    NSArray * combinedArray;    NSArray * userPlayLists;}@property (retain) NSArray * combinedArray;@property (copy) NSArray * userPlayLists;@end

TheController.m

@implementation TheController@synthesize combinedArray;@synthesize userPlayLists;- (voID)setUserPlayLists:(NSArray *)newLists{    // standard property setting code:    if (newLists != userPlayLists)    {        [userPlayLists release];        userPlayLists = [newLists copy];    }    // modify the combined array:    NSMutableArray * allitems = [NSMutableArray arrayWithCapacity:0];    [allitems addobjectsFromArray:standardlibrary];    [allitems addobjectsFromArray:userPlayLists];    [self setCombinedArray:allitems];}@end
总结

以上是内存溢出为你收集整理的如何在Cocoa中使用Bindings CoreData实现iTunes风格的Source-List?全部内容,希望文章能够帮你解决如何在Cocoa中使用Bindings CoreData实现iTunes风格的Source-List?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1100334.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存