首页 > 解决方案 > 声明仅在文件范围内有效错误 SWIFT 应用程序项目

问题描述

我对编码应用程序非常陌生,并且一直在尝试解决问题,但我似乎无法迅速找到我的代码的答案。我想我格式错了,但不知道是什么。这是一张希望帮助您理解的图片:此图片显示了错误消息和所有代码

这是代码。在代码行出现“声明仅在文件范围内有效”的错误:

extension ViewController: UIScrollViewDelegate {                     



    import UIKit
    class ViewController: UIViewController, UIScrollViewDelegate {
        @IBOutlet weak var label: UILabel!
        override func viewDidLoad() {
            super.viewDidLoad()
            scrollView.maximumZoomScale = 4
            scrollView.minimumZoomScale = 1
            scrollView.delegate = self
        }
        @IBAction func randomWord(_ sender: Any) {
            let array = ["Dam", "Military Base", "Quarry", "Airport", "Tv Station", "Storage Town", "Superstore", "Stadium", "Lumber", "Boneyard", "Train Station", "Hospital", "Downtown", "Farmland", "Promenade East", "Promenade West", "Hills", "Park", "Port", "Prison"]
            label.text = array.randomElement()
        }
        @IBOutlet weak var scrollView: UIScrollView!
        @IBOutlet weak var mapImage: UIImageView!
        extension ViewController: UIScrollViewDelegate {                            
            func viewForZooming(in scrollView: UIScrollView) -> UIView? {
                return mapImage
            }
        }
    }

标签: swiftxcode

解决方案


你只需要让你的方法成为你的视图控制器的实例方法:

import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
    @IBOutlet weak var label: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        scrollView.maximumZoomScale = 4
        scrollView.minimumZoomScale = 1
        scrollView.delegate = self
    }
    @IBAction func randomWord(_ sender: Any) {
        let array = ["Dam", "Military Base", "Quarry", "Airport", "Tv Station", "Storage Town", "Superstore", "Stadium", "Lumber", "Boneyard", "Train Station", "Hospital", "Downtown", "Farmland", "Promenade East", "Promenade West", "Hills", "Park", "Port", "Prison"]
        label.text = array.randomElement()
    }
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var mapImage: UIImageView!
    // make viewForZooming a an instance method of ViewController
    func viewForZooming(in scrollView: UIScrollView) -> UIView? {
        return mapImage
    }
}

推荐阅读