お世話になっております。
以下のコードを書いたところ、
fatal error: Can't form Range with end < startというエラーになります。
エラーからSelectPhotos.countが何かのミスで1以下になってしまっているのかと思い、print(SelectPhotos.count)したところ5が入っており、問題ないようでした。さらに、print(SelectPhotos.count)が3や4が入った時はエラーにならず、5の時だけエラーになってしまいます。
swift
1 print(SelectPhotos.count) 2 for ind in 1...SelectPhotos.count{ 3 4 let asset = SelectPhotos[ind-1] 5 }
以下、上記のエラー箇所が含まれるクラス
swift
1// 2// NoteViewController.swift 3// じぶんノート 4// 5// Created by kuroda takumi on 2015/12/18. 6// Copyright © 2015年 BiyousiNote.inc. All rights reserved. 7// 8 9import UIKit 10import Photos 11 12class NoteViewController: UIViewController { 13 14 var SelectPhotos:[PHAsset] = [PHAsset]() 15 16 @IBOutlet weak var topimage: UIImageView! 17 @IBOutlet weak var imageView1: UIImageView! 18 @IBOutlet weak var imageview2: UIImageView! 19 @IBOutlet weak var imageView3: UIImageView! 20 @IBOutlet weak var imageView4: UIImageView! 21 @IBOutlet weak var imageView5: UIImageView! 22 23 @IBOutlet weak var nonImageIqon: UIImageView! 24 25 26 override func viewDidLoad() { 27 super.viewDidLoad() 28 29 self.photoSet() 30 // Do any additional setup after loading the view. 31 } 32 33 func photoSet(){ 34 35 36 print(SelectPhotos.count) 37//エラー箇所 38 for ind in 1...SelectPhotos.count{ 39 40 let asset = SelectPhotos[ind-1] 41 42 let imageView:UIImageView = self.view.viewWithTag(ind) as! UIImageView 43 44 let manager:PHImageManager = PHImageManager() 45 manager.requestImageForAsset(asset, targetSize: CGSizeMake(self.view.bounds.size.width,360), contentMode: PHImageContentMode.AspectFill, options: nil, resultHandler:{(image,info) -> Void in 46 47 //セレクトの一枚目はトップに 48 if ind == 1{ 49 self.topimage.image = image 50 } 51 imageView.image = image 52 53 }) 54 55 } 56 57 for ind in SelectPhotos.count+1...SelectPhotos.count+(5-SelectPhotos.count){ 58 let imageView:UIImageView = self.view.viewWithTag(ind) as! UIImageView 59 60 imageView.image = UIImage(named: "Stack of Photos-26") 61 } 62 } 63 64 @IBAction func photoButtonTaped(sender:UIButton){ 65 switch sender.tag{ 66 case 6: 67 if SelectPhotos.count == 0{ 68 69 70 } 71 let asset = SelectPhotos[0] 72 let manager = PHImageManager() 73 manager.requestImageForAsset(asset, targetSize: CGSizeMake(self.view.bounds.size.width, 360), contentMode: PHImageContentMode.AspectFill, options: nil, resultHandler: {(image,info)->Void in 74 self.topimage.image = image 75 }) 76 case 7: 77 if SelectPhotos.count <= 1{ 78 79 return 80 } 81 82 let asset = SelectPhotos[1] 83 let manager = PHImageManager() 84 manager.requestImageForAsset(asset, targetSize: CGSizeMake(self.view.bounds.size.width, 360), contentMode: PHImageContentMode.AspectFill, options: nil, resultHandler: {(image,info)->Void in 85 86 self.topimage.image = image 87 88 }) 89 90 case 8: 91 if SelectPhotos.count <= 2{ 92 return 93 } 94 95 let asset = SelectPhotos[2] 96 let manager = PHImageManager() 97 manager.requestImageForAsset(asset, targetSize: CGSizeMake(self.view.bounds.size.width, 360), contentMode: PHImageContentMode.AspectFill, options: nil, resultHandler: {(image,info)->Void in 98 99 self.topimage.image = image 100 101 }) 102 case 9: 103 if SelectPhotos.count <= 3{ 104 return 105 } 106 let asset = SelectPhotos[3] 107 let manager = PHImageManager() 108 manager.requestImageForAsset(asset, targetSize: CGSizeMake(self.view.bounds.size.width, 360), contentMode: PHImageContentMode.AspectFill, options: nil, resultHandler: {(image,info)->Void in 109 110 self.topimage.image = image 111 112 }) 113 case 10: 114 if SelectPhotos.count <= 4{ 115 return 116 } 117 118 let asset = SelectPhotos[4] 119 let manager = PHImageManager() 120 manager.requestImageForAsset(asset, targetSize: CGSizeMake(self.view.bounds.size.width, 360), contentMode: PHImageContentMode.AspectFill, options: nil, resultHandler: {(image,info)->Void in 121 122 self.topimage.image = image 123 124 }) 125 default: 126 print("error") 127 128 129 } 130 131 } 132 133 override func viewWillAppear(animated: Bool) { 134 135 } 136 137 override func viewWillDisappear(animated: Bool) { 138 139 } 140 141 override func didReceiveMemoryWarning() { 142 super.didReceiveMemoryWarning() 143 // Dispose of any resources that can be recreated. 144 } 145 146 147 /* 148 // MARK: - Navigation 149 150 // In a storyboard-based application, you will often want to do a little preparation before navigation 151 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 152 // Get the new view controller using segue.destinationViewController. 153 // Pass the selected object to the new view controller. 154 } 155 */ 156 157} 158
解決法がお分かりになられましたら、教えていただければと思います。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/23 13:59