使用集合视图时声明目录

Posted

技术标签:

【中文标题】使用集合视图时声明目录【英文标题】:declaring directory when using collection View 【发布时间】:2013-08-15 17:21:46 【问题描述】:

我不知道如何在 .h 文件中声明您的目录。在我的视图控制器中我写了

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSArray *allImagesArray = [[NSArray alloc ]init];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *location=@"Hats";
    NSString *fPath = [documentsDirectory stringByAppendingPathComponent:location];
    NSArray *directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath: fPath];
    for(NSString *str in directoryContent)
        NSString *finalFilePath = [fPath stringByAppendingPathComponent:str];
        NSData *data = [NSData dataWithContentsOfFile:finalFilePath];
        if(data)
        
            UIImage *image = [UIImage imageWithData:data];
            [allImagesArray addObject:image];

当然,我得到一个错误,说“NSMutableArray”的接口不可见声明选择器“addObject”。我不知道如何在 .h 文件中声明名为 Hats 的目录。我认为您使用 NSMutableArray 或其他东西,但我不确定..

【问题讨论】:

【参考方案1】:

您想使用 NSMutableArray 而不是 NSArray。创建后不能更改 NSArray。

【讨论】:

好的然后你能告诉我如何在 NSMutabelArray 中声明它,因为我正在努力处理声明位。我认为我不需要更改实现文件中的任何内容? 在这种情况下,您只需将 NSArray *allImagesArray = [[NSArray alloc ]init]; 更改为 NSMutableArray *allImagesArray = [[NSMutableArray alloc ]init]; 声明要写什么? NSMutableArray *allImagesArray = [[NSMutableArray alloc ]init]; 但是我在声明列表的末尾收到了一个错误提示“预期”,它指向 = 符号【参考方案2】:
NSMutableArray *allImagesArray = [[NSMutableArray alloc ]init];

然后你就可以了

[allImagesArray addObject:image];

NSArray 初始化时需要填充。因此,如果你想将一些对象添加到数组中,那么你必须使用 NSMutableArray。

【讨论】:

好的,我在声明列表的末尾收到一个错误提示“预期”,它指向 = 符号 这通常发生在空格出现问题时(当您复制粘贴代码时)。重新键入它,确保其适当间隔。或转到Editor 菜单,选择Show Invisibles。它会显示那些空字符。 即使我使用了 show Invisible,我也看不到无用的间距。

以上是关于使用集合视图时声明目录的主要内容,如果未能解决你的问题,请参考以下文章

从集合视图执行 segue

如何在 Swift 中的集合视图上方添加水平按钮堆栈?

集合视图单元格重定向不同的 ViewController

在集合视图中使用自定义流布局时添加标题

List集合

在另一个集合视图的标题中实现集合视图时出错