草庐IT

fno-objc-arc

全部标签

ios - 候选不是 '@objc' 但协议(protocol)需要它

我一直在关注这个tutorial学习快速和iOS应用程序开发。在协议(protocol)部分,教程定义了以下协议(protocol):@objcprotocolSpeaker{funcSpeak()optionalfuncTellJoke()}它说如果你想要一个带有可选方法的协议(protocol),你必须在协议(protocol)前加上@objc标签(即使你的类没有与objective-C互操作)。然后,它显示了实现协议(protocol)的示例:classVicki:Speaker{funcSpeak(){println("Hello,IamVicki!")}funcTellJok

swift - arc4random() 和 arc4random_uniform() 不是真正随机的?

我一直在使用arc4random()和arc4random_uniform()我总觉得它们不是完全随机的,例如,我是随机从一个数组中选择值,但当我连续多次生成它们时,得出的值通常是相同的,所以今天我想我会使用Xcodeplayground来查看这些函数的行为方式,所以我首先测试arc4random_uniform生成一个介于0和4之间的数字,所以我使用了这个算法:importCocoavarnumber=0foriin1...20{number=Int(arc4random_uniform(5))}我运行了好几次,下面是大多数时候值(value)观是如何演变的:所以你可以看到数值在反复

swift - arc4random() 和 arc4random_uniform() 不是真正随机的?

我一直在使用arc4random()和arc4random_uniform()我总觉得它们不是完全随机的,例如,我是随机从一个数组中选择值,但当我连续多次生成它们时,得出的值通常是相同的,所以今天我想我会使用Xcodeplayground来查看这些函数的行为方式,所以我首先测试arc4random_uniform生成一个介于0和4之间的数字,所以我使用了这个算法:importCocoavarnumber=0foriin1...20{number=Int(arc4random_uniform(5))}我运行了好几次,下面是大多数时候值(value)观是如何演变的:所以你可以看到数值在反复

Linux 中的 Swift arc4random_uniform(max)

我在Ubuntu中使用Swift,我收到一个错误,指出arc4random是一个未解析的标识符。有关此已知错误的更多信息here.基本上,该功能只存在于BSD发行版中。我尝试了模块映射头文件、apt-getting包,但我得到的错误越来越多,这不值得追求,因为这个功能并不经常使用。有没有兼容LinuxSwift的上界参数获取伪随机数的函数? 最佳答案 swift4.2letrandom=Int.random(in:0...100)https://developer.apple.com/documentation/swift/int/

Linux 中的 Swift arc4random_uniform(max)

我在Ubuntu中使用Swift,我收到一个错误,指出arc4random是一个未解析的标识符。有关此已知错误的更多信息here.基本上,该功能只存在于BSD发行版中。我尝试了模块映射头文件、apt-getting包,但我得到的错误越来越多,这不值得追求,因为这个功能并不经常使用。有没有兼容LinuxSwift的上界参数获取伪随机数的函数? 最佳答案 swift4.2letrandom=Int.random(in:0...100)https://developer.apple.com/documentation/swift/int/

swift - CLLocationManager.authorizationStatus() 总是 CLAuthorizationStatus.NotDetermined with swift&objC app

我可以让我的CLLocationManager进行授权。(ios8下的swift)我什至添加了一个明确的requestAlwaysAuthorization调用(我不需要在ios7下使用objC)funcfinishLaunch(){//askforauthorizationletstatus=CLLocationManager.authorizationStatus()if(status==CLAuthorizationStatus.NotDetermined){self.locationManager.requestAlwaysAuthorization();}else{self.

swift - CLLocationManager.authorizationStatus() 总是 CLAuthorizationStatus.NotDetermined with swift&objC app

我可以让我的CLLocationManager进行授权。(ios8下的swift)我什至添加了一个明确的requestAlwaysAuthorization调用(我不需要在ios7下使用objC)funcfinishLaunch(){//askforauthorizationletstatus=CLLocationManager.authorizationStatus()if(status==CLAuthorizationStatus.NotDetermined){self.locationManager.requestAlwaysAuthorization();}else{self.

Swift 等同于 __attribute((objc_requires_super))?

是否有Swift等同于__attribute((objc_requires_super))如果一个方法没有调用它的super方法,它会发出警告?基本上,如果被覆盖的方法没有调用它的super方法,我想发出警告(或者更好的是,抛出一个编译器错误)。 最佳答案 不,没有Swift等同于__attribute((objc_requires_super))。等效功能,SwiftAttributes,不包含此类属性。Swiftinheritancedocumentation的部分在会提到这样的功能的地方只说:Whenyouprovideame

Swift 等同于 __attribute((objc_requires_super))?

是否有Swift等同于__attribute((objc_requires_super))如果一个方法没有调用它的super方法,它会发出警告?基本上,如果被覆盖的方法没有调用它的super方法,我想发出警告(或者更好的是,抛出一个编译器错误)。 最佳答案 不,没有Swift等同于__attribute((objc_requires_super))。等效功能,SwiftAttributes,不包含此类属性。Swiftinheritancedocumentation的部分在会提到这样的功能的地方只说:Whenyouprovideame

cocoa-touch - 在 swift 中获取类名的用户可读版本(在 objc NSStringFromClass 中很好)

Swift中是否有NSStringFromClass的等价物,它提供了类名的用户可读版本?我尝试将它与我创建的nativeSwift类一起使用,但如您所见,结果似乎是编译器对类名的内部表示:println(NSStringFromClass(MyClass.self))结果:_TtC5test7MyClass我试过将@objc属性添加到类中,并使其成为NSObject的子类,但没有任何区别。我发现如果我将MyClass替换为同名的Objective-C类,并将其导入桥接header中,它会给我“MyClass”,但这不是必需的。另一种选择是为此制定一个协议(protocol),我想以这