objective-c - 如何在 Swift 2.0 的 UIImage 数组的每个索引中存储多个 UIImage?

标签 objective-c arrays swift uiimage

首先,如果标题没有描述性,我深表歉意。请随意更改它以更适合我的问题。

基本上,我有一个名为 eventImagesUIImages 数组。

在 obj-C 中,我声明它并像这样初始化它:

NSArray *eventImages;

eventImages = @[ [UIImage imageNamed:@"lion_dance.jpg"],
                         [UIImage imageNamed:@"ivan_cheong.jpg"],
                         [UIImage imageNamed:@"tien_nguyen.jpg"],
                         [UIImage imageNamed:@"step_up.jpg"],
                         @[ [UIImage imageNamed:@"dj_happee.jpg"], [UIImage imageNamed:@"adam_cease.jpg"], [UIImage imageNamed:@"ao_dai.jpg"] ],
                         [UIImage imageNamed:@"california_summer.jpg"],
                         [UIImage imageNamed:@"question_mark"] ];

如您所见,在第 4 个索引处,我能够存储一个内部数组 UIImages

我想在 Swift 2.0 中实现这一点

这是我到目前为止所做的:

var eventImages: [UIImage]?

eventImages = [UIImage(named: "lion_dance.jpg")!, 
UIImage(named: "ivan_cheong.jpg")!, UIImage(named: "tien_nguyen.jpg")!,   
UIImage(named: "step_up.jpg")!, [UIImage(named: "dj_happee.jpg")!, 
UIImage(named: "adam_cease.jpg")!, UIImage(named: "ao_dai.jpg")!], 
UIImage(named: "california_summer.jpg")!, UIImage(named: "question_mark")!]

但是,编译器给我错误:

Contextual type 'UIImage' cannot be used with array literal

如何在 Swift 中实现在 Obj-C 中实现的目标?

谢谢

最佳答案

你可以这样做:

var eventImages = [UIImage(named: "lion_dance.jpg")!, 
UIImage(named: "ivan_cheong.jpg")!, UIImage(named: "tien_nguyen.jpg")!,   
UIImage(named: "step_up.jpg")!, [UIImage(named: "dj_happee.jpg")!, 
UIImage(named: "adam_cease.jpg")!, UIImage(named: "ao_dai.jpg")!], 
UIImage(named: "california_summer.jpg")!, UIImage(named: "question_mark")!]

如果通过 UIImage 声明数组类型,则不能添加 UIImage ([UIImage]) 的数组,因为类型不同。然而,如果你跳过类型声明,Swift 会找出并允许这个数组存在。

数组的类型应该是 NSObject 我想,然后你可以将它转换为访问图像:

class SomeClass {

    var eventImages = [[UIImage()], UIImage(), UIImage(), UIImage(), [UIImage(), UIImage(), UIImage()]]

    func doSomething() {
        if let singleImage = eventImages[1] as? UIImage {
            // Access single image
        }
        if let imageArray = eventImages[4] as? [UIImage] {
            // Access image array
        }
    }
}

关于objective-c - 如何在 Swift 2.0 的 UIImage 数组的每个索引中存储多个 UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35053663/

相关文章:

ios - 没有 reuseIdentifier 的 UITableViewCell

ios - 使用 card.io 扫描借记卡

objective-c - 第一次构建和运行我的应用程序时,我的 UITableView 是空的

javascript - 从具有给定 ID 的子数组中获取值

objective-c - 单击离开后如何从特定标签栏中删除角标(Badge)?

arrays - 有没有办法显示数组中的下一个元素?

javascript - 在javascript中对嵌套的对象数组进行排序

swift - 尝试为 UICollectionView Swift 添加 header 时出错

arrays - 在 Swift 中创建一个具有随机 bool 值的数组

swift - NSNull 转换为具有 NSDate 类型属性的 Struct