以下是我的代码..我不明白为什么每次都会出现此错误。
import UIKit
import Foundation
class BaseLabel:UILabel
{
func setFontAndTitle(FontName:String,FontSize:CGFloat,Title:String) {
self.font = UIFont(name: FontName, size: FontSize)
self.text = Title
}
}
var lbl = BaseLabel()
lbl.setFontAndTitle ("Areal", FontSize: 14, Title: "Check label")
在最后一行,我收到错误“表达式不允许在顶级”
答案 0 :(得分:2)
您尝试在课外输入代码。你需要将它放在你的类中并包含在函数体中。请看一下我的解决方案:
import UIKit
import Foundation
class BaseLabel:UILabel
{
func setFontAndTitle(FontName:String,FontSize:CGFloat,Title:String) {
self.font = UIFont(name: FontName, size: FontSize)
self.text = Title
}
func changePropertiesOfLabel(){
var lbl = BaseLabel()
lbl.setFontAndTitle ("Areal", FontSize: 14, Title: "Check label")
}
}
答案 1 :(得分:0)
除了在操场或命令行项目中运行它之外, 我们也可以在单视图应用程序中运行它!
说我们的代码写在ViewController.swift文件中:
import UIKit
import Foundation
class BaseLabel:UILabel {
func setFontAndTitle(FontName:String,FontSize:CGFloat,Title:String) {
self.font = UIFont(name: FontName, size: FontSize)
self.text = Title
}
}
class ViewController:UIViewController {
override func viewDidLoad() {
var lbl = BaseLabel()
lbl.setFontAndTitle (FontName: "Areal", FontSize: 14, Title: "Check label")
print(lbl)
}
}
答案 2 :(得分:0)
问题在于 Xcode 不知道何时运行您的 var lbl = BaseLabel() lbl.setFontAndTitle ("Areal", FontSize: 14, Title: "Check label")
。要解决此问题,您必须将代码放在具有特定运行点(函数或操场)的某处。您可以将它放在 ViewController 的 viewDidLoad 函数中,将它放在 Playground 或其他按顺序运行其代码的文件中,或者将它放在一个新函数中
class ViewController: UIViewController {
override func viewDidLoad() {
var lbl = BaseLabel()
lbl.setFontAndTitle(FontName: "Calibri", FontSize: 14, Title: "Check Label"
}
}
把它放在操场上。
func customizeLabel() {
var lbl = BaseLabel()
lbl.setFontAndTitle(FontName: "Calibri", FontSize: 14, Title: "Check Label"
}
对于解决方案 3,在 viewDidLoad 或其他活动运行点内运行 customizeLabel()
。