首先,我对标题不是描述性的表示歉意。请随意更改它,使其更适合我的问题。
因此,基本上,我有一个UIImages
名为eventImages的数组。
在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")!]
但是,编译器给我错误:
上下文类型'UIImage'不能与数组文字一起使用
如何在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")!]
如果声明数组类型为by 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
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句