小编nhg*_*rif的帖子

具有默认值的Nonfailable枚举初始值设定项

有没有办法定义一个枚举,当从rawValue默认值初始化为某个值而不是失败?在值可能意外(即服务器API错误)的情况下很有用

enums swift

5
推荐指数
1
解决办法
1147
查看次数

如何让Objective-C类符合Swift的`Equatable`协议?

我有一个Objective-C类(恰好是一个按钮,但这并不重要),在我的(混合语言)项目的另一部分,我有一个这些按钮的数组,我想得到索引使用该find()方法的按钮.像这样:

func doSomethingWithThisButtonIndex(index:Int)
{
    let buttons = [firstButton, secondButton, thirdButton]
    if index == find(buttons, firstButton)
    {
        // we've selected the first button
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了

类型'ImplicitlyUnwrappedOptional'不符合协议等价

好的,让我们转到Objective-C并使用ButtonThing工具<Equatable>.但它不承认这一点.

那我该怎么办?现在我正在围绕它构建,迫使阵列成为NSArray并使用indexOfObject.但这很难看.令人沮丧.

protocols objective-c language-interoperability swift

5
推荐指数
1
解决办法
2800
查看次数

在Swift中使用标签

我的控制器中有大约15个UIButton.我试图用一个简单的for循环来清除其中的10个,看起来我正在遇到某种冲突.

当我按下按钮清除时,我收到以下错误:

无法将'_UISizeTrackingView'(0x18a023c)类型的值转换为'UIButton'(0x1899298).(LLDB)

对于循环是:

for var i = 0; i < 9; i++ {
    button = view.viewWithTag(i) as! UIButton
    button.setImage(nil, forState: .Normal)
}
Run Code Online (Sandbox Code Playgroud)

我已将其缩小到使用标记0的项目的问题.我查看了View Controller场景中的所有项目,但似乎找不到任何冲突.我只看到使用tag = 0的一个按钮.

我甚至通过用'0'替换循环中的'i'来解决它并得到同样的问题.当我用'1'或'2'替换它时,可以正常使用该单个图像.

有什么方法可以看到哪个对象使用标签0?我点击了所有这些(包括主要的'视图'),但似乎找不到任何东西.

tags uibutton ios swift

5
推荐指数
1
解决办法
1万
查看次数

Swift应用程序在模拟器上打开但不在设备上打开

我已经在我的iOS应用程序上工作了一段时间,它在模拟器上构建并运行良好,但是当我尝试在我的设备上运行它时,会发生以下几件事:

  • 出现应用启动屏幕
  • 应用程序崩溃,我的Xcode输出如下:

    dyld: Library not loaded: @rpath/libswiftCore.dylib
    Referenced from:/private/var/mobile/Containers/Bundle/Application/18932CDB-57DA-4A87-B154-45B9F3CD01D0/Up & Down - Minimalistic, Beautiful Counter.app/Up & Down - Minimalistic, Beautiful Counter
    Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/18932CDB-57DA-4A87-B154-45B9F3CD01D0/Up & Down - Minimalistic, Beautiful Counter.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x100110000, size=0x0015C000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/18932CDB-57DA-4A87-B154-45B9F3CD01D0/Up & Down - Minimalistic, Beautiful Counter.app/Frameworks/libswiftCore.dylib
    (lldb) 
    
    Run Code Online (Sandbox Code Playgroud)
  • 还会出现以下消息,其他一些类似的错误:

    dyld`dyld_fatal_error:             Thread 1: EXC_BREAKPOINT (code=1,subcode=0x1200f5088)
    ->  0x1200f5088 <+0>: brk    #0x3
    
    Run Code Online (Sandbox Code Playgroud)

所以我不浪费你的时间,我想警告你,我已经尝试清理和构建,撤销和更新证书,删除所有断点,并重新启动Xcode和我的iPhone.

有关如何在我的设备上运行我的应用程序的任何想法?谢谢!!!

crash dyld ios swift

5
推荐指数
1
解决办法
1538
查看次数

在这种情况下,下划线意味着什么?

我在修复Swift 2.0之前的代码:

   override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "RhymeFavoriten") {
        // pass data to next view
        let dest = segue.destinationViewController as! FavoritenViewController
        let source = segue.sourceViewController as! RhymeViewController // !!!!!!
        dest.favoritenType = 1
        dest.delegate = self
    }
}
Run Code Online (Sandbox Code Playgroud)

迁移告诉我要改变它

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "RhymeFavoriten") {
        // pass data to next view
        let dest = segue.destinationViewController as! FavoritenViewController
        _ = segue.sourceViewController as! RhymeViewController // !!!!!!!!!!
        dest.favoritenType = 1
        dest.delegate = self …
Run Code Online (Sandbox Code Playgroud)

syntax swift2

5
推荐指数
1
解决办法
792
查看次数

Swift会自动克隆参数吗?

我一直在阅读在Swift上发布的iBook Apple,我目前正在阅读有关功能的内容.在本章中,他们讨论了inout关键字.这让我想知道:当swift作为参数传递给函数时,swift会自动克隆参数吗?如果没有,我可以创建一个等于我想要传递给函数的变量的常量,然后传递常量以避免变量如果我不想变量?ex(顺便说一句,我知道整数是不可变的.我只是使用整数来保持简单.)

var variable: Int = 5
let constant = variable
let returnVale = function(constant)
Run Code Online (Sandbox Code Playgroud)

(对不起,如果这是一个明显的答案.我的编程经验很少.)感谢您的帮助.

parameters arguments pass-by-reference pass-by-value swift

4
推荐指数
1
解决办法
637
查看次数

如何将属性添加到使用数据模型创建的核心数据类?

我正在创建一个todo应用程序:

我在我的项目.datamodel文件中创建了一个实体,我在实体中添加了一个名为"content"的字符串的属性,并使用"editor">"Create NSManagedObject subclass"创建了NSManagedObject子类:

在此输入图像描述

这个类是创建的:

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>


@interface Targets : NSManagedObject

@property (nonatomic, retain) NSString * content;

@end
Run Code Online (Sandbox Code Playgroud)

但现在我想要另一个"id"属性,我可以给每个todo一个id ...我应该怎么做?可以手动完成吗?因为我是从实体模型生成的,所以我觉得我需要创建一个新的实体才能做到这一点......?

如果你可以指导我,也许通过解释它是如何工作的那将是很棒的..可能我不明白这里的东西,这就是我问这个问题的原因

core-data objective-c nsmanagedobject ios

4
推荐指数
1
解决办法
1740
查看次数

无法声明Swift隐式解包可选作为常量

这是来自swift编程语言 ibook 的代码示例:

class Product {
    let name: String!

    init?(name:String) {
        if name.isEmpty { return nil }
        self.name = name
    }
}
Run Code Online (Sandbox Code Playgroud)

除非将name声明为变量而不是常量,否则它不起作用.是否已经在Swift 1.2中引入了有关此问题的更改,我不知道?

swift

4
推荐指数
1
解决办法
170
查看次数

如何使用Swift以编程方式分配IBOutlet?

我以编程方式向视图控制器添加了一个条形按钮项:

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Menu", style: .Plain, target: nil, action: nil)
}
Run Code Online (Sandbox Code Playgroud)

现在我想以IBOutlet编程方式将该按钮项分配给它.我怎么用Swift做到这一点?

uinavigationcontroller uibarbuttonitem ios swift

4
推荐指数
1
解决办法
9404
查看次数

[AnyObject]数组的swift indexOf

试图获取数组的索引([AnyObject]).我错过了什么部分?

extension PageViewController : UIPageViewControllerDelegate {
      func pageViewController(pageViewController: UIPageViewController, willTransitionToViewControllers pendingViewControllers: [AnyObject]) {
        let controller: AnyObject? = pendingViewControllers.first as AnyObject?
        self.nextIndex = self.viewControllers.indexOf(controller) as Int?
      }
    }
Run Code Online (Sandbox Code Playgroud)

我尝试过使用Swift 1.2这种方法:

func indexOf<U: Equatable>(object: U) -> Int? {
    for (idx, objectToCompare) in enumerate(self) {
      if let to = objectToCompare as? U {
        if object == to {
          return idx
        }
      }
    }
    return nil
  }
Run Code Online (Sandbox Code Playgroud)

输入'AnyObject?'  不符合协议'Equatable' 无法分配

arrays ios swift equatable

4
推荐指数
1
解决办法
1894
查看次数