我有大约150张图片,我正在下载并通过for循环上传。我也在为每个人命名。我根据图像上传时的i值来命名它们,但这只能给出i值的确切数字。每个名字都需要三位数。
例如,我需要001.png,002.png,... 123.png,124.png ......等等,但我得到1.png,2.png ... 123.png, 124.png ...等。
我的代码在这里:
var n = 4
func addCards(urlString:String, numberString:String) {
let url = NSURL(string: urlString)
let urlRequest = NSURLRequest(URL: url!)
NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue(), completionHandler: {
response, data, error in
var image = UIImage(data: data)
let imageData = UIImagePNGRepresentation(image)
let imageFile = PFFile(name: "XY\(n)_\(numberString)", data:imageData)
var cardUpload = PFObject(className:"Cards")
cardUpload["Image"] = imageFile
cardUpload["Expansion"] = "XY\(n)"
cardUpload["Number"] = "XY_\(n)_\(numberString)"
//THIS (Number) IS THE LINE THAT NAMES MY FILES
cardUpload.save()
})
}
for var i = 1; i < 151; i++ {
addCards("http://image.com/image\(i)", "\(i)")
}
答案 0 :(得分:4)
您需要将字符串格式化为3位而不是仅使用索引(这是一个未格式化的Int),所以:
String(format: "%03d.png", i)
答案 1 :(得分:1)
使用格式字符串“%03d”获取具有三位数字和前导零的数字。
for myInt in 1...150 {
println(String(format: "%03d", myInt))
}
答案 2 :(得分:1)
我非常喜欢使用Cocoa的格式化程序类。在你的情况下,我使用NSNumberFormatter
,这非常适合从数字形成各种字符串。试试这段代码 - 它输出一个文件名列表,从 001.png 到 150.png :
let threeDigitFormatter = NSNumberFormatter()
threeDigitFormatter.minimumIntegerDigits = 3
for imageNumber in 1...150 {
let formattedImageNumber = threeDigitFormatter.stringFromNumber(imageNumber)!
let filename = "\(formattedImageNumber).png"
println(filename)
}