Arrays 无法将图像数组附加到另一个数组
我的JSON:Arrays 无法将图像数组附加到另一个数组,arrays,json,swift,uicollectionview,alamofire,Arrays,Json,Swift,Uicollectionview,Alamofire,我的JSON: { “答复”:{ “开始”:0, “文件”:[ { “注册ID”:[ “KAR\KDF6” ], “字段名2”:[ “语言” ], “地点”:[ “蛀虫” ], “活动”:[ 真的 ], “性”:[ “男性” ], “纬度”:[ 12.457 ], “城市”:[ “布尔” ], “图像数据”:[ 数据:数据:图像/png;Bas64,IVBorwwwwwwwwwwwwwwwwwwwwwwwwwwww维数据:数据:数据:数据:图像:图像/巴巴巴巴尼;巴巴巴巴巴尼;基础64,基础64
{
“答复”:{
“开始”:0,
“文件”:[
{
“注册ID”:[
“KAR\KDF6”
],
“字段名2”:[
“语言”
],
“地点”:[
“蛀虫”
],
“活动”:[
真的
],
“性”:[
“男性”
],
“纬度”:[
12.457
],
“城市”:[
“布尔”
],
“图像数据”:[
数据:数据:图像/png;Bas64,IVBorwwwwwwwwwwwwwwwwwwwwwwwwwwww维数据:数据:数据:数据:图像:图像/巴巴巴巴尼;巴巴巴巴巴尼;基础64,基础64,IVBowwwwwwwwwwwwwwwwwwwwwwwAAAAAAAAAAAAAAwwwwwwww4。数据:数据:数据:数据:数据:数据:数据:数据:图像:图像:图像:数据:图像:图像:图像:巴巴巴巴巴巴巴巴尼;巴巴巴巴巴尼;巴巴巴巴巴巴巴巴尼;巴巴巴巴巴巴巴巴巴巴尼;巴巴巴巴巴巴尼;巴巴巴巴巴巴巴巴巴巴巴尼;基础64;巴巴巴巴巴巴巴巴巴巴尼;基础64;基础64;基础64,维维维CQO7GK一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国的BBZZBBZZZZBBBZZZBBBZBBZBBBZBBBZBBBBZBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBWOXXC4UBYOU1BIVASL+5AOfncuE7fE4Xl4WRqE79z3\/WOCRF6Q09MBWGAAABJRU5ERKJGG=”
],
“fieldValue2”:[
英语、印地语、卡纳达语
],
“fieldValue1”:[
“11年”
],
“国家”:[
“克尔”
],
“id”:“sdffsdfsdf”,
“电子邮件”:[
"me@some.com"
],
“经度”:[
77.552492
],
“名字”:[
“普拉西亚”
],
“版本”:145434759168,
“经验”:[
12
],
“案件类型”:[
“有些”
],
“姓氏”:[
“巴尔”
],
“模式”:[
“律师”
],
“字段名1”:[
“经验”
]
},
{
“国家”:[
“评分员”
],
“语言”:[
“英语”,
“印地语”,
“卡纳达”
],
“姓氏”:[
“K”
],
“名字”:[
“Rresr”
],
“性”:[
“男性”
],
“案件类型”:[
“这么多”
],
“注册ID”:[
“卡德斯夫”
],
“移动”:[
98453445
],
“id”:“Rajfsdsg”,
“图像数据”:[
数据:数据:图像。png;Bas64,IvBorwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww维维维数据:数据:数据:数据:图像:图像。巴巴巴巴巴巴尼;Bas64,Ivwwwwwwwwwwwwwwbowwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwgagagagaaaaa4-4xvvvvvvvvvvvv4x4xvvvvvvvvv4xjs9999xxxxxxxvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.研究者们提出了一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究成果,一种新的研究方法,一种新的研究,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究方法,一种新的研究成果,一种新的一种新的研究成果,一种新的研究将在一种新的非非非非非非非中国的非非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国QRRJC3FU6T12JWQM5QDNBEWJJUJGQ8UJGQ6CVVNJU9MWIBHJXGDSYVN0TPQUV4GXJKG0SKPV+TUHWBQBQ6WSYOJA\/VTRCUQZYRH4UUUV2\/ziJ\/f\/aiwX2jbsXKz3ga\/aN+4CG28vb9o27Fys94Gv2jfuAhtvL2\/ANUXCRPERBR\/G2M9YYIB6MAAAABJR5ERKJGGG=”
],
“活动”:[
真的
],
“模式”:[
“律师”
],
“城市”:[
“班加罗尔”
],
“版本”:15214536,
“电子邮件”:[
"me@me.com"
],
“经验”:[
18
],
“地点”:[
“巴贾杰”
]
}
],
“numFound”:2
},
“负责人”:{
“状态”:0,
“QTime”:1,
“参数”:{
“q”:“模式:”(“律师”、“CA\”)和活动:真实和城市:”(“Boret\”)和地点:““bajaj\”)和案例类型:”(“fly-fly\”),
“wt”:“json”
}
}
}
我已经声明了一个全局数组private-var-items=[UIImage]()
和private-var-cellsIsOpen=[Bool]()
我正在转换从JSON数据获得的bas64 imageData字符串,并返回一个UIImage
数组
public func loadimages(url: String!) -> [UIImage]{
let unsafe = url
var data1 = [UIImage]()
let bingo = NSURL(string: unsafe!)
Alamofire.request(.GET, bingo!)
.validate()
.responseJSON{ response in
switch response.result{
case .Success:
let json33 = JSON(data: response.data!)
let allImageStrings = json33["response"]["docs"].flatMap { $0.1["imageData"].first?.1}
for Bro in allImageStrings{
let url = NSURL(string: Bro.string!)
let data = NSData(contentsOfURL: url!)!
let image = UIImage(data: data)
data1.append(image!)
}
self.items = data1
//print(self.items.count)
case .Failure(let error):
print(error)
}
}
return data1
}
而且
override public func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
print(self.items.count)
return self.items.count
}
计数显示为0。数组项
根本没有追加。如何附加它?我甚至试着去做
override public func viewDidLoad() {
// Do any additional setup after loading the view.
itemSize = CGSize(width: 214, height: 264)
super.viewDidLoad()
let gt: [UIImage] = loadimages("someurl&wt=json")
items.append(gt) //Error: Cannot convert value of type '[UIImage]' to expected argument type 'UIImage'
print(items.count)
}
这里有一个函数
func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {
guard let cell = cell as? CollectViewCell else { return }
// var index = indexPath.row % 4
//let info = items
for item in items{
cell.backgroundImageView.image = item
}
cell.cellIsOpen(cellsIsOpen[indexPath.row], animated: false) //Here
collectionView.reloadData()
}
*在这里,它崩溃了,说索引超出范围
请帮忙 看起来您的问题可能与Alamofire请求有关。要么它失败了,因此在成功案例下追加后没有追加任何内容,要么因为它是异步请求,所以在加载任何内容之前尝试打印项目。尝试在失败案例下附加一个映像 另外,出现错误“无法将“[UIImage]”类型的值转换为预期的参数类型“UIImage]”的原因是,您试图将整个数组追加到数组中,而此时只需追加单个元素,在本例中为UIImage 请尝试此操作以测试阵列的大小
let gt: UIImage = UIImage()
items.append(gt)
print(items.count)
看起来您的问题可能与您的Alamofire请求有关。要么它失败了,因此在成功案例下追加后没有追加任何内容,要么因为它是异步请求,所以在加载任何内容之前尝试打印项目。尝试在失败案例下附加一个映像 另外,出现错误“无法将“[UIImage]”类型的值转换为预期的参数类型“UIImage]”的原因是,您试图将整个数组追加到数组中,而此时只需追加单个元素,在本例中为UIImage 请尝试此操作以测试阵列的大小
let gt: UIImage = UIImage()
items.append(gt)
print(items.count)
Alamofire很好,它抓住了回调中的主线程,使得UI易于更新。您对collectionView的数据源方法的第一次调用将在t之前
var data1 = [UIImage]()
var data1 = [AnyObject]()