小编nhg*_*rif的帖子

符合协议的类作为Swift中的函数参数

在Objective-C中,可以将符合协议的类指定为方法参数.例如,我可以有一个只允许UIViewController符合的方法UITableViewDataSource:

- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Run Code Online (Sandbox Code Playgroud)

我无法在Swift中找到一种方法(也许它还不可能).您可以使用指定多个协议func foo(obj: protocol<P1, P2>),但是如何要求对象也是特定类?

swift

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

是否可以阻止NSURLRequest缓存数据或在请求后删除缓存数据?

在iPhone上,我使用NSURLRequest对一大块数据执行HTTP请求.对象分配峰值,我相应地分配数据.当我完成数据后,我会相应地释放它 - 但是仪器没有显示任何已释放的数据!

我的理论是,默认情况下,HTTP请求被缓存,但我不希望我的iPhone应用程序缓存这些数据.

有没有办法在请求后清除此缓存或阻止任何数据首先被缓存?

我尝试过使用下面记录的所有缓存策略:

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
theRequest.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
Run Code Online (Sandbox Code Playgroud)

但似乎没有什么可以释放记忆!

cocoa-touch caching

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

仅构建设备不能用于运行此目标

我在尝试测试应用时遇到此错误.

仅构建设备不能用于运行此目标.

没有受支持的iOS设备可用.连接设备以运行应用程序或选择模拟设备作为目标.

xcode ios

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

如何从响应break的内部结构中打破外部循环(循环/切换)

如何从一个响应breakSwift中的语句的嵌套结构中打破外部循环?

例如:

while someCondition {
    if someOtherCondition {
        switch (someValue) {
            case 0:     // do something
            case 1:     // exit loop
            case 2...5: // do something else
            default:    break
        }
    } else {
        someCondition = false
    }
}
Run Code Online (Sandbox Code Playgroud)

break只会让我离开的switch,而在斯威夫特,它具有为空的情况下不得使用.我怎样才能从内部完全退出循环switch

loops nested-loops swift

71
推荐指数
2
解决办法
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万
查看次数

xcode swift am/pm时间为24小时格式

我想将am/pm格式时间转换为24小时格式时间

6:35 PM to 18:35
Run Code Online (Sandbox Code Playgroud)

我在操场上尝试了这段代码,但如果我把时间单独放在上面似乎没有用

let dateAsString = "02/12/15, 6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH"
let date = dateFormatter.dateFromString(dateAsString) //returns nil
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

谢谢.

time swift

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

你如何在Swift中设置字体样式?

我正在尝试为Swift开发,它进展顺利.我遇到的一个问题是找出如何在语言中以编程方式设置字体样式.

例如,在这个标签中,我编写了下面的代码,例如,我如何才能使它成为Helvetica Neue Ultralight?

label.font = UIFont (name: "Helvetica Neue", size: 30)
Run Code Online (Sandbox Code Playgroud)

uifont ios swift

51
推荐指数
4
解决办法
10万
查看次数

二元运算符*不能应用于Int和Double类型的操作数

我正在尝试构建一个简单的Swift应用来计算增值税(增值税= 20%).

class ViewController: UIViewController {

@IBOutlet var resultTextView: UITextView!
@IBOutlet var inputTextField: UITextField!
@IBOutlet var calculateVATButton: UIButton!

override func viewDidLoad() {


    super.viewDidLoad()


    func taxesFree(number: Int)-> Double{


    var textfield = self.inputTextField.text.toInt()!
    let VAT = 0.2
    var result = textfield * VAT
     return result

              }
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我一直在努力

二进制运算符*不能应用于Int和Double类型的操作数

在结果行上

var result = textfield * VAT
Run Code Online (Sandbox Code Playgroud)

在功能里面.

swift

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

如何在asp.net中识别impersonate ="true"时获取Windows用户名?

我正在创建一个内部网asp.net mvc应用程序,公司中的每个人都应该可以访问它.我需要运行模拟数据库访问的网站等,但我想知道每个用户是谁.

当我看着Page.User.Identity.Name它的空白时.即使网站正在模拟运行,是否可以获取用户的Windows帐户名称?

编辑: 这里有更多信息.我在IIS 6中有一个运行匿名访问的站点.该站点在可以访问数据库的系统帐户下运行(因为所有员工都无权访问数据库).

我的web.config有<authentication mode="Windows" /><identity impersonate="true"/>

我的目标是用户不必登录 - 他们登录我们网络的事实(以及该网站不在外部IP上的事实)是足够的身份验证.我想知道用户是谁以跟踪他们所做的更改等.

asp.net-mvc impersonation

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

是否可以将[AnyObject]数组转发为特定于类型的数组?

我正在阅读Swift文档,查看关于类型转换的部分.

该文档讨论了[AnyObject]从Foundation框架中获取类型的数组(NSArray *Objective-C中的内容).

首先,文档提供了这个示例:

for object in someObjects {
    let movie = object as Movie
    println("Movie: '\(movie.name)', dir. \(movie.director)")
}
Run Code Online (Sandbox Code Playgroud)

现在,我想稍微改变一下这个例子,我不知道所有对象都是类型的Movie,所以我会这样做:

for object in someObject {
    if let movie = object as? Movie {
        println("Movie: '\(movie.name', dir. \(movie.director)")
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,文档提供了编写第一个循环的更好方法的示例:

for movie in someObjects as [Movie] {
   println("Movie: '\(movie.name)', dir. \(movie.director)")
}
Run Code Online (Sandbox Code Playgroud)

我们someObjects从一个[AnyObject]到另一个向下倾斜的地方,[Movie]所以我们不必在循环中贬低.

这让我想到,阵列可以作为一个整体选择垂头丧气吗?

if let someMovies = someObjects as? [Movie] {
    for movie in someMovies { …
Run Code Online (Sandbox Code Playgroud)

arrays casting swift

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