小编nhg*_*rif的帖子

可选出现在结果中

我目前正在学习swift,并且我编写了以下愚蠢的代码,但结果显示如下:"当英雄处于2级时,怪物是可选的("sihso").我不知道为什么那里有可选词.

var level = 2
var mons = [1 : "SHhi", 2 : "sihso", 3 : "shssh"]
var monster = mons [level]
print("The monster is \(monster)" + " when the hero is at level \(level)")
Run Code Online (Sandbox Code Playgroud)

optional swift

2
推荐指数
1
解决办法
272
查看次数

使用contentsOfFile而不是图像命名

在iPad Mini上显示内存警告后,我的应用程序应用程序崩溃.经过大量研究后,我发现问题是由于内存分配所致,UIImage( named:)例如:

SkipTutorial.image = UIImage(named: "skipTutorial.png")
Run Code Online (Sandbox Code Playgroud)

我应该使用contentsOfFile方法,以便不缓存图像.所以我用过:

if let imgPath = NSBundle.mainBundle().pathForResource("skipTutorial", ofType: "png") {
     SkipTutorial.image = UIImage(contentsOfFile:imgPath)
}
Run Code Online (Sandbox Code Playgroud)

但是,这不会获取图像.图像位于Xcode 中的Images.xcassets中.基本上我的应用程序使用了许多不需要缓存的图像.我在这里发现了类似的问题:

如何阻止我的快速应用程序崩溃

甚至他的查询在如何使用contentsOfFile方法的评论中都没有得到答复.如果有人帮助我,我真的很感激.

ios swift

2
推荐指数
1
解决办法
2349
查看次数

正确编程 - 函数是否应在所有代码路径上返回值?

我的VB.Net类的构造函数传递了Enum属性的值.如果我在这个使用Select Case语句的类中创建一个方法,那么包含Case Else一行(永远不会被执行)是否正确编程?我理解它,只是想知道什么是"正确的"编程.

Public Enum eList
    one = 1
    two = 2
    three = 3
End Enum

Public Class Class1
    Private _eValue As eList

    Public Sub New(ByVal ePassed As eList)
        _eValue = ePassed
    End Sub

    Public Function SomeMethod() As Object
        Select Case _eValue
            '(all eList items accounted for below)
            Case eList.one
                'do something
            Case eList.two
                'do something else
            Case eList.three
                'do another thing
            Case Else
                '  should I put a Return <value> line here? …
Run Code Online (Sandbox Code Playgroud)

vb.net return-value

2
推荐指数
1
解决办法
70
查看次数

如何将可选的NSInteger转换为非可选的NSInteger?

我需要检索一个设置(使用Swift):

var highScoreNumber: NSInteger = 0
var returnValue: [NSInteger]? = NSUserDefaults.standardUserDefaults().objectForKey("food") as? [NSInteger]

if (returnValue != nil) {
    highScoreNumber = returnValue as NSInteger
}
Run Code Online (Sandbox Code Playgroud)

我试过这个和代码的其他变体,我总是得到

'NSInteger的?' 不能转换为'NSInteger'

这是我第一次涉足Swift,所以

  1. 我在转换中遗漏了一些简单的东西吗?
  2. 有没有更好的方法从设置中检索NSInteger?

optional swift

2
推荐指数
1
解决办法
1300
查看次数

一个View Controller上有多个NSTableView

我想在一个ViewController上有多个NSTableViews.我用以下代码实现了第一个TableView:

class MainViewController: NSViewController
{

    @IBOutlet weak var tableView: NSTableView!

    override func viewDidLoad() 
    {
        super.viewDidLoad()

        let nib = NSNib(nibNamed: "MyCellView", bundle: NSBundle.mainBundle())
        tableView.registerNib(nib!, forIdentifier: "MyCellView")

        let appDelegate = NSApplication.sharedApplication().delegate as! AppDelegate
        appDelegate.view = self
    }
}

extension MainViewController: NSTableViewDataSource, NSTableViewDelegate 
{
    func numberOfRowsInTableView(tableView: NSTableView) -> Int 
    {
        return 5
    }

    func tableView(tableView: NSTableView, heightOfRow row: Int) -> CGFloat
    {
        return 25
    }

    func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? 
    {
        let cell = tableView.makeViewWithIdentifier("MyCellView", owner: self) as! …
Run Code Online (Sandbox Code Playgroud)

nstableview swift

2
推荐指数
1
解决办法
1165
查看次数

按下按钮时如何切换标签的隐藏?

我试图弄清楚如何在OS中按下按钮时只显示标签.我知道如何操作触摸事件,但我不知道如何将UILongPressGestureRecognizer纳入其中.

uibutton uikit uilabel ios

2
推荐指数
1
解决办法
2010
查看次数

为什么UI事件在Swift/Objective-C中不是线程安全的?

所以我开始学习Grand Central Dispatch的基础知识以及iOS应用程序的多线程概念.每个教程都会告诉您必须在主线程上运行UI事件,但我不完全理解为什么.

这是我昨天遇到的一个问题,最后通过在主线程上运行segue来修复它,但我仍然不明白为什么从主线程运行它是一个问题:

我有一个自定义的初始VC(条形码扫描仪)和一个带有UIWebView附加的新视图控制器的segue .一旦VC找到条形码,它就会调用一个处理程序,在那个封口中,我有了一个performSegueWithIdentifier.但是,我得到了EXC_BAD_ACCESS,因为这个(当第二VC有一个标签,或者它没有发生UIImageView,只是用UIWebView).我终于意识到由于某种原因,闭包被称为主线程,因此segue正在主线程上执行.为什么要在另一个线程上执行segue会引发内存错误?是因为selfself.performSegueWithIdentifier某种程度上是零吗?为什么Swift不会自动在主线程上发送segue事件?

multithreading grand-central-dispatch ios

2
推荐指数
1
解决办法
768
查看次数

Swift和isKindOfClass()之间的区别?

以下表达式之间有什么区别吗?

if someInstance is SomeClass {
}

if someInstance.isKindOfClass(SomeClass)  {
}
Run Code Online (Sandbox Code Playgroud)

swift

2
推荐指数
1
解决办法
2236
查看次数

在Swift中继承UIAlertAction的问题

这是我的代码:

class CustomAlertAction: UIAlertAction {
    init(title : String) {
        super.init(title: title, style: UIAlertActionStyle.Default) { (action) -> Void in
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了以下编译错误:

必须调用超类'UIAlertAction'的指定初始值设定项

我知道UIAlertAction的指定初始化程序是init().但是UIAlert的init(标题,样式,处理程序)不会调用它的指定初始化程序init()?

任何的想法?谢谢

PS:基于Apple的文档:

指定的初始化程序必须从其直接超类中调用指定的初始化程序."

这是否意味着不允许在Swift中继承UIAlertAction?在Objective-C中这样做没有问题.

我想创建UIAlertAction的子类的原因是因为我想添加一个ReactiveCocoa命令作为一个动作.

initialization ios reactive-cocoa swift uialertaction

2
推荐指数
1
解决办法
1193
查看次数

' - [__ NSCFDictionary setObject:forKey:]:mutating方法发送到不可变对象'导致崩溃

我将NSUserDefault中的UserInfo Dictionary指定为NSMutableDictionary.现在我的dicInfo是可变字典,但它包含的对象是不可变的.因此,当我试图替换这些值时,它会导致崩溃.我附上描述崩溃报告的图像.如果有任何解决方案,如何将可变字典的内部对象转换为可变字典.

谢谢 在此输入图像描述

swift

2
推荐指数
1
解决办法
1729
查看次数