【发布时间】:2015-09-27 23:33:30
【问题描述】:
我是 Swift 初学者。
以下代码似乎在 Xcode 7.0 Playground 中编译得很好(没有可见的错误):
//: Playground - noun: a place where people can play
//#!/usr/bin/env xcrun swift
import WebKit
let application = NSApplication.sharedApplication()
application.setActivationPolicy(NSApplicationActivationPolicy.Regular)
let window = NSWindow()
window.setContentSize(NSSize(width:800, height:600))
window.styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask
window.center()
window.title = "Minimal Swift WebKit Browser"
window.makeKeyAndOrderFront(window)
class WindowDelegate: NSObject, NSWindowDelegate {
func windowWillClose(notification: NSNotification) {
NSApplication.sharedApplication().terminate(0)
}
}
let windowDelegate = WindowDelegate()
window.delegate = windowDelegate
class ApplicationDelegate: NSObject, NSApplicationDelegate {
var _window: NSWindow
init(window: NSWindow) {
self._window = window
}
func applicationDidFinishLaunching(notification: NSNotification) {
let webView = WebView(frame: self._window.contentView!.frame)
self._window.contentView!.addSubview(webView)
webView.mainFrame.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.apple.com")!))
}
}
将完全相同的代码粘贴到 OSX 的新 Cocoa 应用程序的“AppDelegate.swift”文件中时,出现 7 个错误,完全相同:“表达式不允许在顶层”。
通过搜索,我推断 Playground 允许正常项目不允许的事情,并且由于表达式“在类或实例方法之外”而发生错误。
但是我不确定如何修改程序才能正确构建。
【问题讨论】:
-
将变量声明移动到对象的方法中。你的 ApplicaitonDelegate 的 init 怎么样?
标签: swift