无法弄清楚为什么我在 Swift iOS 应用程序代码中收到“Class ViewController has noinitializer”错误

2024-03-14

我试图在我的 iOS 应用程序中制作一个教程屏幕,用户可以在其中滑动几张图片来了解有关该应用程序的一些信息。一切看起来都很好,除了当我构建项目时,我在第一行代码中收到以下错误:

ViewController 类没有初始化器

我做错了什么?

我的 ViewController.swift 代码如下

import UIKit

//line below is where I get the error

class ViewController: UIViewController, UIPageViewControllerDataSource {

//end

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

override func viewDidLoad() {
    super.viewDidLoad()

    self.pageTitles = NSArray(objects: "", "", "")
    self.pageImages = NSArray(objects: "page1", "page2", "page3")

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

    self.pageViewController.dataSource = self

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

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

    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.
}

@IBAction func restartAction(sender: AnyObject) {
}

func viewControllerAtIndex(index: Int) -> ContentViewController
{

    if ((self.pageTitles.count == 0) || (index >= self.pageTitles.count))
    {
        return ContentViewController()
    }

    var 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

}

// Mark: - Page View Controller Data Source

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

    var 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? {

    var 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)
}

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
    return self.pageTitles.count
}

func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
    return 0
}

}

这是因为这一行:

var pageViewController: UIPageViewController

你是这么说的pageViewController不能为 null,但您没有将其设置为值的初始值设定项。看看你的代码,我怀疑你想将其更改为:

var pageViewController: UIPageViewController!

我在这里更详细地讨论了这个问题。 https://www.hackingwithswift.com/example-code/language/fixing-class-viewcontroller-has-no-initializers

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法弄清楚为什么我在 Swift iOS 应用程序代码中收到“Class ViewController has noinitializer”错误 的相关文章

  • 如何“旋转”图层/视图(例如,就像在 enigmo 中一样)

    我知道如何根据触摸移动图层 但我也希望能够旋转图像 是否有任何示例代码显示如何执行此操作 或者有人可以给我一些建议吗 Thanks 最简单的方法是使用图层的变换属性 float angle M PI rotate 180 or 1 radi
  • 使用 Javascript 获取 Mobile Safari 中选定的文本

    因此 我正在开发一个小书签 对于我来说 使用 循环 获取用户选择的内容是理想的选择 window getSelection 和 document getSelection 都是我可以调用的函数 但是它们始终返回空字符串 我相信问题在于 当您
  • 从 NSString 获取子字符串,直到到达特定单词

    假设我有这个NSString Country Address Tel number 我该如何获取之前的子字符串Tel 国家地址 然后我该如何获取后面的子字符串Tel 数字 使用 NSScanner NSString string Count
  • Apple 如何通知 iOS 应用程序内购买 (IAP) 退款?

    我在我的应用程序中成功实现了 Apple iOS IAP 并在沙箱中进行了测试 效果很好 我担心用户可能会通过 IAP 购买商品 将其下载到我的应用程序中 然后向 Apple 投诉并获得退款 没有明显的方式将退款报告给我的应用程序 它们是否
  • 如何确定 NSURLSessionTask 请求何时开始?

    I use NSURLSessionTask我正在尝试监视我的一些 HTTP 请求需要多长时间 我可以监视什么委托方法 或其他方法 NSURLSessionTask实际上提出了最初的请求 如果这是一个NSURLConnection里面一个N
  • SWIFT:+[CATransaction Synchronize] 在解码 HTML 实体时在事务中调用

    我正在制作一个获取博客 JSON 内容的应用程序 博客文章的标题显示在 tableView 中 获取的标题是 HTML 编码的 所以我用这段代码解码了它们 func configureCell cell UITableViewCell at
  • 枚举 NSString 的最佳方法

    我正在寻找枚举 objc 对象 例如 NSString 的方法 我记得 Xcode4 版本中有一个新功能 它提供了一种新的 enum 方法 但不清楚 有人知道吗 好吧 我自己回答 我想我犯了一个错误 这就是我上面提到的新功能 typedef
  • iPhone模拟器的屏幕截图应用程序[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道有没有什么好的推荐iPhone模拟器截图的应用程序 我尝试过 iPhone 屏幕截图裁剪器等应
  • 为什么 UIWebView 实例不调用scrollViewDidScroll?

    iOS 文档说 UIWeb视图 http developer apple com library ios documentation uikit reference UIWebView Class Reference Reference h
  • iphone navigationController :在退出当前视图之前等待 uialertview 响应

    我有一个带有由导航控制器管理的后退按钮的视图 我想在用户单击后退按钮时检查文件是否已保存 如果文件已保存 您将返回到上一个视图 否则 uialertview 会询问您是否要保存文件 所以我这样做了 但视图消失了 然后警报视图出现了 void
  • UITableView 如何一次显示两个不同的数组?

    下面的代码有效 但不符合我的意愿 我希望当我单击 UIbutton 时 它会自动更新 UITableview 中的新值而不是旧值 下面的代码仅在我按下 UIbuttons 时有效 之后当我滚动 UITableview 时它会更新具有新值的
  • 将 firebase 框架添加到 ios 项目时出现链接器错误

    我一直在尝试将 firebase 框架添加到我的 ios 应用程序中 我按照这里的说明进行操作 https www firebase com docs ios quickstart html https www firebase com d
  • stringFromDate 始终为 NIL

    我知道这是一个重复的问题 但是在 stackoverflow 和 google 上搜索了许多类似的问题后 没有一个解决方案对我有用 我正在尝试将从数据库收到的日期转换为字符串格式以在 iPhone 应用程序中显示 我正在按以下方式将日期转换
  • 如何使用 Expo 播放 Youtube 视频

    我正在尝试使用反应本机 YouTube 组件 https github com inProgress team react native youtube在我的世博项目中 但是 我无法让它发挥作用 到目前为止 我所拥有的只是带有红色边框的黑屏
  • CF 类型的带有 __attribute__((NSObject)) 的强 @property 不会保留

    更新 自 Xcode 4 6 起 此问题已得到修复 现在 这项技术再次按预期发挥作用 但是 在代码中使用之前 请务必阅读 Rob Napier 出色答案顶部的注释 原帖 ARC Xcode 4 3 1 iOS 5 1 我有一个 CF 类型
  • Swift 将十进制坐标转换为度、分、秒、方向

    我怎样才能将其转换为快速 我最好的猜测是所有 int 都变成了 var 删除所有导致 的 此外 如果有的话可以给我指出一个很好的来源来了解事物如何转换 那就太好了 NSString coordinateString int latSecon
  • 使用 Core Data Swift 对 TableView 和行进行分区

    我在 sqlite 中有两个表 代码由 XCode Generation 生成 class Event NSManagedObject NSManaged var startDate NSDate NSManaged var details
  • UITableView 自动调整行大小约束在 iPhone 6Plus 上神秘破坏

    我有一个自定义的 UITableViewCell 它有一个缩略图和一堆文本 行高配置为使用自动计算 tableView estimatedRowHeight 129 tableView rowHeight UITableViewAutoma
  • 使用 Swift 解析框架

    有人尝试过将 Parse Framework 与 swift 一起使用吗 只要添加桥接文件 您就可以使用 swift 和 Objective C 代码 这是我的查询 从 Parse 返回的 对象 数组正确地包含了我的所有数据 但该方法在将
  • 如何在运行时更改 UIMenu 内 UIAction 的状态?

    如何更改 UIAction 的状态 目标是切换 UIMenu 内 UIAction 旁边的状态复选标记 更改 UIAction 的state通过存储在视图控制器中的引用似乎根本不会改变状态 我错过了什么吗 View Controller i

随机推荐