我想将Int
Swift转换为String
带有前导零的.例如,考虑以下代码:
for myInt in 1 ... 3 {
print("\(myInt)")
}
Run Code Online (Sandbox Code Playgroud)
目前的结果是:
1
2
3
Run Code Online (Sandbox Code Playgroud)
但我希望它是:
01
02
03
Run Code Online (Sandbox Code Playgroud)
在Swift标准库中有没有一种干净的方法呢?
我有,我加入了一个框架目标具有自定义子类迅捷的项目UIView
,所以我可以在Xcode 6.用Interface Builder中新的实时取景但是当我尝试添加@IBOutlet
在我的UIViewController
子类的项目中,我得到一个"的使用未声明的类型'MyCustomView'"错误,我无法构建我的项目.
这是来自UIViewController子类的代码:
import UIKit
import MyCustomFramework
class MyViewController: UIViewController {
@IBOutlet var myCustomView: MyCustomView?
}
Run Code Online (Sandbox Code Playgroud)
这就是'MyCustomFramework'目标中的'MyCustomView.swift':
import UIKit
@IBDesignable class MyCustomView: UIView {
@IBOutlet var imageView: UIImageView?
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
}
Run Code Online (Sandbox Code Playgroud)
谁知道我忘记了什么?我是以错误的方式导入的吗?我错过了什么?
我有一个排序的数组,并希望对它进行二进制搜索.
所以我问Swift库中是否已有类似等等的东西?或者是否有可用的独立版本?
当然我可以自己写,但我想避免再次重新发明轮子.
不确定这是Swift,XCode还是Alamofire的问题,但我认识到混合的Swift/Objc应用程序中不同位置的奇怪行为.它只发生在用Swift编写的部分中并使用闭包/网络.以下是它发生的示例代码:
Alamofire.request(.DELETE, "http://someUrl.com/user", parameters: nil)
.response { (request, response, data, error) in
// some cleanup code and an alert
}
Run Code Online (Sandbox Code Playgroud)
当我在我的iPhone上以调试模式运行我的应用程序时,一切正常,清理代码和警报就像我们执行运行上面代码的"删除帐户"操作时那样.
但是,当我把我的应用程序用户通过Testflight或直接运行我在同一个iPhone应用程序,但使用发布版本的配置,然后清理代码不运行和警报显示不出来.看起来整个闭包不会被调用.
有没有人有这种奇怪行为的经验,知道如何预防它们?我不确定这里的问题是什么,因此我很难找到适用于调试和发布模式的解决方案.
感谢您的任何帮助!
环境: 我使用Alamofire 1.1.3作为嵌入式框架集成到我的项目中作为git子模块.该应用仅在iOS 8+上运行,我在iPhone 6上安装了iOS 8.1.2.
我有一个自定义UIView子类,通过Nib文件(UIImageView,UIView和UITextField)和IBOutlets集添加了三个子视图.但是当在子类中调用awakeFromNib
或initWithCoder
调用时,所有IBOutlet都是nil
,甚至子视图数组都是空的.
我正在使用Swift和XCode 6 beta 5,其中这个UIView 子类在框架中,我将UIView子类添加到项目中的Storyboard中,因此我可以使用新的Live View技术.但是我无法在实时视图中看到添加的子视图,这非常令人难过.
我找不到任何解决方法,这是我的UIView子类的代码:
import UIKit
@IBDesignable public class BlurredSheetEntryView: UIView {
@IBOutlet var iconImageView: UIImageView?
@IBOutlet var separatorView: UIView?
@IBOutlet public var textField: UITextField?
override init(frame: CGRect) {
super.init(frame: frame)
}
required public init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
for subView in self.subviews {
println("subView: \(subView)")
}
println("self.textField: \(self.textField)")
println("self.iconImageView: \(self.iconImageView)")
println("self.separatorView: \(self.separatorView)")
}
override public func awakeFromNib() {
for subView in self.subviews { …
Run Code Online (Sandbox Code Playgroud) 这是一个由两部分组成的问题,到目前为止我在“The Swift Programming Language”中找不到答案。
第一个问题是:
Swift 中允许哪些字符作为方法或函数的名称?
是否允许所有 unicode 字符?
问题的第二部分是:
是否有一些例外,如保留名称或字符?
有没有他们的官方名单?
我问的原因是我尝试编写这样的函数并收到错误:
func ?(object: AnyObject) -> AnyObject {
// some function
return object
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用其他非拉丁字符(如 ü、ä、ö)时,它可以正常工作,以下不会引发错误:
func fünctiön(object: AnyObject) -> AnyObject {
// some function
return object
}
Run Code Online (Sandbox Code Playgroud)
所以,这让我很困惑。
我似乎无法使用可用于存储属性的Default Initializers方法为计算属性提供默认值.这是一个用例,我需要这个:
@IBDesignable public class MyRoundedCornersView: UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return self.layer.cornerRadius
}
set {
self.layer.cornerRadius = newValue
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想给cornerRadius一个默认值.但以下不起作用(刚添加= 8.0
):
@IBDesignable public class MyRoundedCornersView: UIView {
@IBInspectable var cornerRadius: CGFloat = 8.0 {
get {
return self.layer.cornerRadius
}
set {
self.layer.cornerRadius = newValue
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了不那么有用的'(() -> () -> $T1) -> $T2' is not identical to 'Double'
错误.我在这里查找了如何做到这一点,但似乎Apple不支持计算属性的默认值.至少我找不到任何东西.
那么我怎样才能确保我的属性有默认值?这个线程说在init方法中也不可能 - 但即使我想在我的属性定义附近保留默认值.有没有人有想法?
我想将与 tvOS 一起运行的新 Apple TV 设置为具有自定义服务的蓝牙外围设备,以便它可以与对应的 iPad 应用程序进行通信(iPad 是中央蓝牙设备,可以被视为 Apple TV 应用程序的遥控器)。
Apple 提供了一个编程指南,可以在这里执行此操作,但它似乎已经过时了(甚至是它的预发布版本):
据的iOS的版本注释9.1 / tvOS的初始化方法两者的CBMutableCharacteristic
类和CBMutableService
类中除去,并且不再提供tvOS(使用的XCode 7.1)。您可以在此处找到 CoreBluetooth 框架中的相关更改。
我试图直接使用类的startAdvertising
方法,CBPeripheralManager
它调用peripheralManagerDidStartAdvertising
委托方法没有这样的错误:
let peripheralManager = CBPeripheralManager()
let myCustomServiceUUID = CBUUID(string: "12345678-ABCD-1234-ABCD-123456789ABC")
func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) {
if peripheral.state == .PoweredOn {
print("Bluetooth state is OK.")
self.startProvidingSecondScreenForTestsService()
self.peripheralManager.startAdvertising([CBAdvertisementDataServiceUUIDsKey: [self.myCustomServiceUUID]])
}
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在没有沿途定义的任何特征的情况下以这种方式交换数据。
我是否在这里遗漏了什么 …
这让我发疯。
我的应用程序正常运行,然后我不知道自己做了什么,但是storyboard/
IB/
Xibs
当我在真实设备或模拟器上运行该应用程序时,我现在在等方面所做的任何更改都没有更新。例如,我更改了的textColor
,UILabel
但是当我运行该应用程序时,旧颜色仍然在设备或模拟器上同时显示。我正在使用Xcode版本7.3.1。
请帮忙。谢谢
如何创建一个填充了某个范围内的值(具有开始和结束值)和一个步骤的数组?它应该支持float
类型的开始和结束值。
我使用 Rails 4 默认测试框架并编写了一些测试,这些测试也希望 Sidekiq 在“后台”做一些工作。但是当我运行时,rake test
我的测试结果如下所示:
.............2014-08-01T05:40:52Z 12000 TID-abcdef123 INFO: Sidekiq client with redis options {}
.....................................
Finished in 3.0s, 9.000 runs/s, 150.000 assertions/s.
30 runs, 400 assertions, 0 failures, 0 errors, 0 skips
Run Code Online (Sandbox Code Playgroud)
现在测试看起来不错,但是 Sidekiq 工人的日志真的很烦人。为了防止这个日志发生,我在我的工人班上试过这个:
class MyWorker
include Sidekiq::Worker
sidekiq_options queue: :my_queue
def initialize
Rails.logger.level = 2 # set to :warn level
super
end
def perform(movie_id)
# Rails.logger.level = 0 # set back to :debug level?
# some code
end
end
Run Code Online (Sandbox Code Playgroud)
Rails.logger.level
注释和取消注释的行,但记录的行并没有消失。在运行时如何防止 Sidekiq …
你能告诉我如何动画textColor
UILabel吗?
例如,我想将颜色从白色更改为红色,然后以淡入效果返回白色并重复约3次.
我需要这个动画,因为我的应用程序从互联网获取实时数据,当值更改时,我需要设置此文本值的动画,以告诉用户它已更改.
非常感谢.
我写了一个帮助器类,我向服务器发出了所有请求(Rails 4.1).此帮助程序类中的大多数请求都可以正常工作,但一个特定请求始终失败.我正在使用Alamofire来满足我的要求.
这是我的助手类的一些代码:
let responseHandler = { (request: NSURLRequest, response: NSHTTPURLResponse?, object: AnyObject?, error: NSError?) -> Void in
println("request: \(request) || response: \(response) || object: \(object) || error: \(error)")
}
// make custom request
let request = NSMutableURLRequest(URL: NSURL(string: fullPath)!)
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(["session_key": "ABC"], options: nil, error: nil)
request.HTTPMethod = "GET"
request.allHTTPHeaderFields = ["Accept": "application/json", "Content-Type": "application/json"]
Alamofire.request(request).response(responseHandler)
Run Code Online (Sandbox Code Playgroud)
这是println
上面代码中该行的输出:
request: <NSMutableURLRequest: 0x1702007e0> { URL: http:/wolverine.movie-assistor.staging.c66.me/user } || response: nil || object: Optional(<>) || error: Optional(Error Domain=NSURLErrorDomain Code=-1017 "The …
Run Code Online (Sandbox Code Playgroud) swift ×9
ios ×7
alamofire ×2
arrays ×2
iphone ×2
objective-c ×2
animation ×1
bluetooth ×1
closures ×1
frameworks ×1
function ×1
int ×1
ios9.1 ×1
logging ×1
methods ×1
properties ×1
range ×1
release-mode ×1
ruby ×1
sidekiq ×1
string ×1
testing ×1
text ×1
tvos ×1
types ×1
uilabel ×1
xcode ×1
xcode7.3 ×1