gpt4 book ai didi

objective-c - 在运行时创建实例变量?

转载 作者:行者123 更新时间:2023-12-03 17:07:34 28 4
gpt4 key购买 nike

嘿,我有点困惑..

我正在使用 EyeTunes 框架进行一个小型学习项目。这是一个 iTunes Controller 。

该框架为我提供了 iTunes 中当前存在的一系列播放列表。由于某些播放列表包含数千个轨道,我计划在“applicationDidFinishLaunching”方法中创建每个播放列表的轨道对象数组。 (并保留这些数组)
这样,当绑定(bind)系统应该显示播放列表的轨道列表时,它不必立即加载整个列表。到目前为止一切顺利..

现在,为我想做的每个播放列表创建这些轨道数组:
(allPlaylists 是一个包含所有 iTunes 播放列表的数组 [ ETPlaylist* ];
ETPlaylist 使用“tracks 方法”返回 Track 数组)

for (ETPlaylist *aPlaylist in allPlaylists){

arrayContainingTracks = [aPlaylist tracks]

}

所以

  1. 如何在每个枚举中为“arrayContainingTracks”设置不同的名称?
    以及如何在必须声明所有实例变量的头文件中执行此操作?

  2. 顺便说一句:数组在分配时将其内容加载到内存中的关系级别最高?

最佳答案

我不确定我完全理解这个问题(你到底为什么要更改变量名称?)。但以下代码将在 arrayContainingTracks 中插入每个播放列表的每个轨道(假设它是 NSMutableArray 的实例):

for (ETPlaylist *aPlaylist in allPlaylists)
{
[arrayContainingTracks addObjectsFromArray:[aPlaylist tracks]];
}

请注意,数组中的所有轨道都将被展平。如果您想预加载每个轨道,但又想保留播放列表的名称,请将它们存储在 NSMutableDictionary 中:

for (ETPlaylist *aPlaylist in allPlaylists)
{
[playlistsByName setObject:[aPlaylist tracks] forKey:[aPlaylist name]];
}

在这里,我假设 ETPlaylist 类有一个 name 方法。

关于objective-c - 在运行时创建实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4102924/

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