小编bog*_*gen的帖子

如何在Swift中返回Array的前5个对象?

在Swift中,是否有一种聪明的方法可以使用Array上的高阶方法返回5个第一个对象?这样做的obj-c方法是保存索引,并循环遍历数组递增索引,直到它为5并返回新数组.有没有办法做到这一点filter,mapreduce

arrays swift

152
推荐指数
10
解决办法
7万
查看次数

如何让应用知道它的运行单元是否在纯Swift项目中测试?

在XCode 6.1中运行测试时,一个令人讨厌的事情是整个应用程序必须运行并启动其storyboard和root viewController.在我的应用程序中,它运行一些获取API数据的服务器调用.但是,我不希望应用程序在运行其测试时执行此操作.

随着预处理器宏的消失,对于我的项目来说最好的是要知道它是在运行测试而不是普通的启动时启动的吗?我用CMD + U和机器人正常运行它们.

伪代码将是:

// Appdelegate.swift

if runningTests() {
   return
} else {
   // do ordinary api calls
}
Run Code Online (Sandbox Code Playgroud)

xcode ios xctest swift

68
推荐指数
11
解决办法
2万
查看次数

如何在Objective-C中提供Swift String枚举?

我有这个带有String值的枚举,它将用于告诉API方法记录服务器消息具有什么样的服务器性.我正在使用Swift 1.2,因此枚举可以映射到Objective-C

@objc enum LogSeverity : String {
    case Debug = "DEBUG"
    case Info = "INFO"
    case Warn = "WARN"
    case Error = "ERROR"
}
Run Code Online (Sandbox Code Playgroud)

我收到了错误

@objc enum raw type String不是整数类型

我没有设法找到任何说只有整数可以从Swift转换为Objective-C的地方.是这样的吗?如果是这样,有没有人有任何关于如何在Objective-C中提供这样的东西的最佳实践建议?

enums interop objective-c swift

58
推荐指数
6
解决办法
4万
查看次数

如何在协议扩展中定义初始值设定项?

protocol Car {
     var wheels : Int { get set}

     init(wheels: Int)

}

extension Car {
    init(wheels: Int) {
        self.wheels = wheels
    }
}
Run Code Online (Sandbox Code Playgroud)

on self.wheels = wheels我得到了错误

Error: variable 'self' passed by reference before being initialized
Run Code Online (Sandbox Code Playgroud)

如何在协议扩展中定义初始化程序?

protocols initialization swift swift-extensions swift2

45
推荐指数
3
解决办法
2万
查看次数

如何访问在XCUIApplication中设置的launchEnvironment和launchArguments,在XCode中运行UI测试?

我尝试XCUIApplication在UI测试中设置实例中的属性setUp()

let app = XCUIApplication()
app.launchEnvironment = ["testenv" : "testenvValue"]
app.launchArguments = ["anArgument"]
app.launch()
Run Code Online (Sandbox Code Playgroud)

didFinishLaunch我运行我的UITests时,我试图在屏幕上显示这些内容

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    if launchOptions != nil {
        for (key, value) in launchOptions! {  
            let alertView = UIAlertView(title: key.description, message: value.description, delegate: nil, cancelButtonTitle: "ok")
            alertView.show()
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我似乎无法找到我设定的论点和环境.有谁知道怎么抓住他们?

xcode ui-testing ios swift

42
推荐指数
7
解决办法
2万
查看次数

segue完成后如何执行一些代码?

在iOS 6中是否可以知道何时UIStoryboardSegue完成了转换?就像当我在navigationcontroler上添加一个UIStoryboardSeguefrom UIButton来推送另一个UIViewController时,我希望在推送转换完成后立即执行某些操作.

uiviewcontroller ios segue uistoryboardsegue ios6

30
推荐指数
3
解决办法
2万
查看次数

如何在Swift中为NSManagedObject子类创建指定的初始值设定项?

class Alternative: NSManagedObject {

    @NSManaged var text: String
    @NSManaged var isCorrect: Bool
    @NSManaged var image: NSData
} 

convenience init(text: String, isCorrect: Bool, entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext!) {
        let alternative = Alternative(entity: entity, insertIntoManagedObjectContext: context) as Alternative
        alternative.text = text
        alternative.isCorrect = isCorrect
        return alternative
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个方法,让我用这个调用初始化新对象:

let newAlternative = Alternative("third platform", True, entityDescription, managedObjectContext)
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

Convenience initializer for Alternative must delegate with self.init
Run Code Online (Sandbox Code Playgroud)

我需要更改我的initalizer以使我的示例使用工作?

core-data nsmanagedobject ios swift

30
推荐指数
2
解决办法
2万
查看次数

如何获取结构的包?

在Swift中,你可以打电话

let bundle = NSBundle(forClass: self.dynamicType)
Run Code Online (Sandbox Code Playgroud)

在任何类中获取当前的包.如果您NSBundle.mainBundle()在例如运行单元测试时无法获得正确的捆绑.

那么如何获得Swift的当前捆绑struct

struct nsbundle swift

25
推荐指数
3
解决办法
2844
查看次数

如何删除Google App Engine中用于python的NDB模型的所有实体?

我有一个ndb模型类:

class Game(ndb.Model):
    gameID = ndb.IntegerProperty()
    gameName = ndb.StringProperty()
Run Code Online (Sandbox Code Playgroud)

有没有办法快速删除存储在数据库中的所有实体?就像是Game.deletAll()

python google-app-engine app-engine-ndb

17
推荐指数
1
解决办法
7776
查看次数

如何检测 SwiftUI 中列表单元格行上的点击?

给定一个基本的Listwith Text,我怎样才能使从屏幕左侧到右侧的整个“单元格”在 a 中可点击List,而不仅仅是“Hello world”文本?

    List {
         VStack {
             Text("Hello world")
         }    
         .contentShape(Rectangle())
         .onTapGesture {
            print("Tapped cell")  // This only triggers when you directly tap the Text
         }
     }
Run Code Online (Sandbox Code Playgroud)

swiftui

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