Kullanıcıların düğün resimlerini gösteren bir iOS uygulaması yapıyorum. Bir görüntü dosyasının ortalama boyutu yaklaşık 1,5 Mb'dir. Ancak resimler bittiğinde (10'dan fazla resim) uygulama çöküyor. Bu sorunu çözmek için herhangi bir çözüm var mı? Temel verileri uygulamayı düşünüyordum. Yardımcı olacak mı? Eğer değilse lütfen bana yardım edin. (: Self.userId, self.albumId, "http://webphotobooks.in/webphotobook/index.php/web_controller/fetch1?id=%@&album_id=%@" formatında)Büyük boyuttaki resimlerin yüklenmesi, Swift 2.0 uygulamasında çökmeler yaşanmasına neden oluyor
let urlString :String = url.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
//print(urlString, terminator: "")
let request : NSMutableURLRequest = NSMutableURLRequest()
request.URL = NSURL(string: urlString as String)
request.HTTPMethod = "GET"
var response: NSURLResponse?
let data = (try? NSURLConnection.sendSynchronousRequest(request, returningResponse: &response)) as NSData?
if let httpResponse = response as? NSHTTPURLResponse {
//print("error \(httpResponse.statusCode)")
let statusCode = httpResponse.statusCode
if statusCode == 200
{
do
{
let jsonResult: NSDictionary! = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary
//print(jsonResult, terminator: "")
if (jsonResult != nil)
{
if (jsonResult?.objectForKey("messagge") as! String == "successfull")
{
self.array = jsonResult.valueForKey("images") as! NSArray
// print(self.array)
self.collectionView.reloadData()
}
else
{
if #available(iOS 8.0, *) {
let alert = UIAlertController(title: "Error", message: "Unable to fetch images", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
alert.view.tintColor = UIColor.blackColor()
self.presentViewController(alert, animated: true, completion: nil)
}
else
{
let alert = UIAlertView(title: "Error", message: "Unable to fetch images", delegate: self, cancelButtonTitle: "Ok")
alert.show()
}
}
}
}
catch let error as NSError
{
print(error)
}
}
else
{
if #available(iOS 8.0, *) {
let alert = UIAlertController(title: "Error", message: "Please check your internet connection", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
alert.view.tintColor = UIColor.blackColor()
self.presentViewController(alert, animated: true, completion: nil)
}
else
{
let alert = UIAlertView(title: "Error", message: "Please check your internet connection", delegate: self, cancelButtonTitle: "Ok")
alert.show()
}
}
}
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
//#warning Incomplete method implementation -- Return the number of sections
return 1
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
//#warning Incomplete method implementation -- Return the number of items in the section
return self.array.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
let cell:HomeCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("HomeCell", forIndexPath: indexPath) as! HomeCollectionViewCell
if let images = cell.profileImage
{
if !(array.valueForKey("image_name").objectAtIndex(indexPath.row).isKindOfClass(NSNull))
{
let Str = array.valueForKey("image_name").objectAtIndex(indexPath.row) as! String
let block: SDWebImageCompletionBlock! = {(image: UIImage!, error: NSError!, cacheType: SDImageCacheType, imageURL: NSURL!) -> Void in
// print(image)
}
let urlStr = NSString(format: "http://webphotobooks.in/admin/uploads/category_pics/%@", Str)
//print(urlStr)
let urlString :String = urlStr.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
//print(urlString)
let url = NSURL(string: urlString as String)
//print(url)
images.sd_setImageWithURL(url, completed: block)
}
}
actInd.stopAnimating()
return cell
}
Kodunuzu ve nasıl kilitlendiğini gösterir. 'UIImage (contentOfFile:) 'başlatıcısı –
kullanarak yüklemeyi deneyin Ben görüntüleri bir örnek verebilir –