无法分配给属性:“自身”是不可变的

grahamcracker1234

我正在创建一个页面视图应用程序。我已经为ViewController编写了代码:

import UIKit

class ViewController: UIViewController {

var pageViewController : UIPageViewController!
var pageTitles : NSArray!
var pageImages : NSArray!

@IBAction func restartAction(sender: AnyObject) {}

override func viewDidLoad() {
    super.viewDidLoad()

    self.pageTitles = NSArray(objects: "This Is Page One!", "This Is Page Two!")
    self.pageImages = NSArray(objects: "page1", "page2")

    self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! UIPageViewController

    self.pageViewController.dataSource = self // <–– Error

    let startVC = self.viewControllerAtIndex(0) as ContentViewController
    let viewControllers = NSArray(object: startVC)

    self.pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil)

    self.pageViewController.view.frame = CGRectMake(0, 30, self.view.frame.width, self.view.frame.height - 60)

    self.addChildViewController(self.pageViewController)
    self.view.addSubview(self.pageViewController.view)
    self.pageViewController.didMoveToParentViewController(self)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func viewControllerAtIndex(index: Int) -> ContentViewController {
    if ((self.pageTitles.count == 0) || (index >= self.pageTitles.count)) {
        return ContentViewController()
    }

    let vc : ContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("ContentViewController") as! ContentViewController

    vc.imageFile = self.pageImages[index] as! String
    vc.titleText = self.pageTitles[index] as! String
    vc.pageIndex = index

    return vc
}



func pageViewController(pageViewController: UIPageViewController, viewcontrollerBeforeViewController viewController: UIViewController) ->UIViewController? {

    let vc = viewController as! ContentViewController
    var index = vc.pageIndex as Int

    if index == 0 || index == NSNotFound {
        return nil
    }

    index--
    return self.viewControllerAtIndex(index)

}

func pageViewController(pageViewController: UIPageViewController, viewcontrollerAfterViewController viewController: UIViewController) ->UIViewController? {

    let vc = viewController as! ContentViewController
    var index = vc.pageIndex as Int

    if index == NSNotFound {
        return nil
    }

    index++

    if index == self.pageTitles.count {
        return nil
    }

    return self.viewControllerAtIndex(index)

}

}

但是我在这条线上遇到了错误self.pageViewController.dataSource = self错误是:

无法分配给属性:“自身”是不可变的

我不确定为什么自我是一成不变的,以及如何解决它。如果有人可以帮助,请提前感谢。

莱斯利·戈德温

赶紧打电话给你 self.pageViewController.setDelegate(self)

在某些情况下,委托已声明为方法,而不是属性

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法分配给属性:“自身”是不可变的快速错误

无法分配给属性:“$0”是不可变的

Swiftui无法分配给属性:'self'是不可变的错误

“无法分配给属性:“任何”都是不可变的”错误

无法分配给属性:“ $ text”是不可变的

无法分配给属性:在将值分配给 @ObservedObject 时,“self”是不可变的

无法分配给属性:“(description)”属性是不可变的错误,带有(leftSwipe.description = .Left)

无法分配给属性:函数调用返回不可变的值

Swift无法分配给NSData类型的不可变值

尝试分配给字符串+角色时,“无法分配给不可变值”

无法分配给属性:“自我”是不可变的,我知道该如何解决,但需要了解

无法分配给“布尔型”的不可变表达式?

无法分配给类型为...的不可变表达式,但使用协议

无法分配给 Swift 类型的不可变表达式

错误-无法分配给值:函数调用返回不可变的值

Xcode错误:“无法分配给值:函数调用返回不可变的值”在表视图中

无法分配给值:函数调用返回不可变值

如何确保只读属性不能分配给可变属性?

无法在“自身”中分配给“”-在Swift中使用元组

Malloc错误-无法分配给可变大小的对象

Swift:无法分配给属性:“ reuseIdentifier”是仅获取属性

无法分配给属性“ tabBarController”是仅获取属性

无法分配给属性:“ xxxx”是只读属性

无法分配给属性:<Enum:case>无法设置

在C ++ / CLI中将新值分配给不可变值结构

无法分配给对象的只读属性“ stopImmediatePropagation”

无法分配给“状态”,因为它是常量或只读属性

检查属性时无法将组件分配给变量

无法分配给对象#<Object> 的只读属性“whatever”?