草庐IT

int_void

全部标签

swift - 在 Int 扩展上调用变异函数

在命令行应用程序中创建了一个扩展。当我尝试调用calc方法时,它不起作用。调用desc有效。我错过了什么?protocolCalculatable{vardesc:String{get}mutatingfunccalc()}classMyClass:Calculatable{vardesc:String="MyClass"funccalc(){desc+="isgreat"}}extensionInt:Calculatable{vardesc:String{return"hi"}mutatingfunccalc(){self+=10}}7.desc//works7.calc()//Co

ios - 将 [Int64] 的 Swift 数组转换为 NSArray

我正在尝试将SwiftInt64数组转换为具有NSNumber值的NSArray。@interfaceA:NSObject-(void)bar:(NSArray*)tips;@endSwift类继承了这个Objective-C类:classB:A{funcfoo(tips:[Int64]){self.bar(tips)}}Swift代码无法编译并出现以下错误:Type'[Int64]'doesnotconformtoprotocol'AnyObject'如何使用NSNumber实例将[Int64]转换为NSArray?附言我尝试了很多东西,但找不到一个简单的方法来做到这一点:self.

swift - Int 和 String 如何被接受为 AnyHashable?

我怎么可以这样做?vardict=[AnyHashable:Int]()dict[NSObject()]=1dict[""]=2这意味着NSObject和String在某种程度上是AnyHashable的子类型但AnyHashable是一个struct那么,他们如何允许这样做呢? 最佳答案 考虑Optional是一个enum,这也是一种值类型——但您可以自由地转换String到Optional.答案很简单,编译器会隐式地为您执行这些转换。如果我们查看以下代码发出的SIL:leti:AnyHashable=5我们可以看到编译器插入了对

pointers - UnsafeMutablePointer<Int8> 来自 Swift 中的字符串

我正在使用dgeev来自Accelerate框架中LAPACK实现的算法,用于计算矩阵的特征向量和特征值。遗憾的是,Apple文档中没有描述LAPACK函数,仅链接到http://netlib.org/lapack/faq.html。包括在内。如果你查一下,你会发现dgeev中的前两个参数是表示是否计算特征向量的字符。在Swift中,它要求UnsafeMutablePointer.当我简单地使用"N",我得到一个错误。dgeev功能和错误在以下屏幕截图中描述我应该怎么做才能解决这个问题? 最佳答案 “问题”是前两个参数声明为char

objective-c - 无法调用从 Obj-C 抛出并返回非 void 的 Swift 类中的方法

我想在Swift中有一个返回Bool的函数,但如果发生异常,它也可以throw。例如:funcdoSomething(value:Int)throws->Bool{if(value>0){returntrue}elseif(value==0){throwNSError(domain:"SwiftClass",code:0,userInfo:nil)}returnfalse}这在Swift中运行良好,但如果我尝试在Objective-C中使用此函数,编译器将无法找到该方法。我知道throws需要将Objective-C函数签名更改为doSomething:xerror:&error并且如

ios - 将最大 int 值(不是字符数)设置为 UITextField

在Swift中,是否可以为UITextField设置最大INT值?我的用例是我有5个需要具有最大int值的文本字段。这些值的范围从500一直到10,000。5个不同的文本字段中的每一个都有不同的最大值。我不能使用选择器或下拉菜单,因为增量将为1。而且UISlider太难了,无法“擦洗”数字。如果最大整数值为5,000,则用户不能(在数字键盘的键盘类型上)输入任何大于5000的值。字符数将不起作用,因为如果最大值为500,如果我设置为3个字符,用户可以输入999。 最佳答案 您可以检查文本字段中的当前值是否小于您指定的最大整数值:(此

Java int类型数值比较总结

如果是int类型,判断相等的话直接使用"=="来判断,例如:inti=10;intj=10;System.out.print(i==j);如果是Integer类型,则可以使用equals方法进行相等比较。int与Integer的基本使用对比(1)Integer是int的包装类;int是基本数据类型;(2)Integer变量必须实例化后才能使用;int变量不需要;(3)Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值;(4)Integer的默认值是null;int的默认值是0。(5)Integer型变量与int型变量之间可以直接比较,此时自动进行拆箱操作。

swift - 如何使用 RxSwift Observable<Int>.interval?

我正在尝试以给定的时间间隔以“脉冲”方式发出序列。对Rx的一切都是全新的,但认为这样做就可以了:importRxSwiftletdb=DisposeBag()_=Observable.interval(1.0,scheduler:MainScheduler.instance).debug("interval").subscribe(onNext:{print($0)}).addDisposableTo(db)但它只输出:2017-09-2506:12:41.161:interval->subscribed仅此而已。我在这里不明白什么? 最佳答案

xcode - 字符串不可转换为 int (Swift)

这是我的代码(我的实际代码更复杂,但我简化了它,但我仍然得到这个错误):letx="1"asIntXcode说:'String'isnotconvertibleto'Int'我是不是遗漏了什么或者这是一个测试版错误? 最佳答案 您不能简单地使用as进行转换。有一种方法可以显式生成Int。letx="1".toInt()请注意,结果是Int?类型,因为Swift无法预先知道转换是否成功。println(x!)或者:letx="1".toInt()! 关于xcode-字符串不可转换为int(

string - 无法将类型 'Range<Int>' 的值转换为预期的参数类型 'Range<Index>'(又名 'Range<String.CharacterView.Index>')

我这里有一个字符串,我正在尝试对其进行子字符串化。letdesc="Helloworld.HelloWorld."varstringRange=1..但是Swift给我一个错误。我做错了什么?我正在使用stringRange的新表示法,因为它不允许我使用旧的。 最佳答案 您创建的Range类型不正确,它被推断为Int。您需要从字符串本身创建范围:letdesc="Helloworld.HelloWorld."letstringRange=desc.startIndex..String稍微复杂一些。或者,返回到NSString和NSR