我在我的项目中的一个单独的Swift文件中创build了最简单的自定义类: class Foo { init() { println("I made a foo.") } } 然后,在同一个项目的一个操场上,我试了一下 var x = Foo() Xcode似乎不喜欢这个,并告诉我'Foo'是一个未解决的标识符。 我对操场如何适应项目结构的其余部分有些困惑,因为我项目中的其他Swift文件可以毫无问题地解决“Foo”问题。 我如何使我的游乐场能够使用我在我的项目中的其他Swift文件中定义的自定义类? 我已经尝试为构build目标命名产品模块并将其导入到操场中,但没有成功:操场无法识别产品模块的名称。 预先感谢您的帮助。 我知道这很简单。
// Playground – noun: a place where people can play func getAverage(numbers: Int…) -> Double{ var total = 0 var average:Double = 0 for number in numbers{ total = total + number } average = total / numbers.count return average } getAverage(3, 6) 我得到一个average = total / numbers.count错误 无法find接受提供参数的“/”的重载 我试图通过这样做来解决: average = Double(total/numbers.count) 但是然后getAverage被设置为4而不是4.5
Swift 2(Swift 3)和Google Analytics(分析)存在问题。 这是问题的线路: tracker.send(GAIDictionaryBuilder.createScreenView().build()) Xcode告诉我: 无法使用types为“(NSMutableDictionary!)”的参数列表来调用“send”
我试图用Swift语言来包装我的头。 在Objective-C的代码中构build视图时的常见模式是重写UI属性,并像这样延迟加载它们: @property(nonatomic, strong) UILabel *myLabel; – (UILabel *)myLabel { if (!_myLabel) { _myLabel = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 75.0f, 320.0f, 20.0f)]; [_myLabel setFont:[UIFont subHeadlineFont]]; [_myLabel setTextColor:[UIColor subHeadlineColor]]; [_myLabel setText:@"Hello World"]; } return _myLabel; } – (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:self.myLabel]; } 这允许UIElements的configuration在其设置中自包含,但不会导致每次重新configuration它们。 看来我们没有在Swift中访问后备存储,而@lazy关键字实际上并没有相同的语义。 我很好奇,如果有人在Swift中发现了一个相似的模式,那么允许将variables和常量的configuration和它们的声明一起以一种整齐的语法方式保存,而不会导致每次重新configuration。
函数定义中唯一的下划线是什么意思? 例如map(_:) 我明白,当定义函数时,我可以这样做: func myFunc(_ string: String) { … } 那么我myFunc(_string:)它作为myFunc(_:)而不是myFunc(_string:) ,即有目的地隐藏参数名称?
我有两个视图控制器。 在视图controller1我有以下内容: 一个segue,带我去viewcontroller2 – 这个segue被命名为“showme”,并附加到viewcontroller 一个UIButton的IBAction 在我的代码中,我有以下的button按下操作 @IBAction func buttonPress(sender: AnyObject) { println("button pressed") performSegueWithIdentifier("showme", sender: self) } 我也有以下方法: override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool { println("Should performing….") return true } 由于某种原因,shouldPerformSegueWithIdentifier函数永远不会被调用。 但是,如果我直接在UIButton上添加segue到ViewController2。 我已经确认,在我的button动作工作中调用它的方向(见下文),但这不是我所知道的,它的工作方式。 准备赛报也是如此。 @IBAction func buttonPress(sender: AnyObject) { println("button pressed") if (shouldPerformSegueWithIdentifier("showme", sender: self)){ performSegueWithIdentifier("showme", sender: self)} }
它与默认的键盘工作正常,但我不能让它与数字键盘一起工作。 有任何想法吗?
所以我环顾苹果网站上的开发者库,并且找不到任何说明如何使用swift语言陈述用于UIImage的文件(比如png)的文档。 所以我尝试使用这个代码: class ViewController: UIViewController { @IBOutlet var maintitle: UIImageView var bigtitle: UIImage! var smalltitle: UIImage! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. func startAnimating(){ var animatedtitle: AnyObject[] = [bigtitle, smalltitle] var animationDuration: NSTimeInterval = 0.15 var animationRepeatCount: Int = 0 } } 我在那里试图做的是创造一个永无止境的两个图像系列。 […]
在ObjectiveC中我会这样做 UIImage *image = [[UIImage imageNamed:@"myImage.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 但在Swift中,我尝试了所有这样的替代方法,但没有成功 var image : UIImage = UIImage(named:"myImage.png").imageWithRenderingMode(renderingMode: AlwaysOriginal) 它显示一个错误: 使用未parsing的标识符“AlwaysOriginal” 我怎么做?
我已经环顾四周,并没有成功地弄清楚如何把文本,覆盖在图像上,然后将它们组合成一个单一的UIImage。 我已经穷尽谷歌使用search条件,我能想到的,所以如果任何人有一个解决scheme或至less有一个提示,他们可以指出,将不胜感激。