我对Swift中的2D数组感到困惑.让我一步一步地描述.如果我错了,请你纠正我.
首先; 声明一个空数组:
class test{
var my2Darr = Int[][]()
}
Run Code Online (Sandbox Code Playgroud)
其次填充数组.(例如,my2Darr[i][j] = 0其中i,j是for循环变量)
class test {
var my2Darr = Int[][]()
init() {
for(var i:Int=0;i<10;i++) {
for(var j:Int=0;j<10;j++) {
my2Darr[i][j]=18 /* Is this correct? */
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
最后,编辑数组中的元素
class test {
var my2Darr = Int[][]()
init() {
.... //same as up code
}
func edit(number:Int,index:Int){
my2Darr[index][index] = number
// Is this correct? and What if index is bigger
// than i or j... Can we control that …Run Code Online (Sandbox Code Playgroud) 我有一个将字符类型转换为字符串类型的问题.首先,我在String的扩展名下面用于在String中查找第n个字符.
extension String {
func characterAtIndex(index: Int) -> Character? {
var cur = 0
for char in self {
if cur == index {
return char
}
cur++
}
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个类扩展我想要的东西.但是,当我将第n个字符用于我的自定义UIButton的标题时,会出错.我的Uibutton课程是
class hareketliHarfler: UIButton {
init(frame: CGRect) {
super.init(frame: frame)
// Initialization code
}
func getLetter(letter:String!){
self.titleLabel.text = letter
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试访问"getLetter(letter:String)"函数时出现错误.以下是主视图控制器代码的示例:
var harfim = hareketliHarfler(frame: CGRectMake(100,100,100,100))
var str="This is my String"
var bufi=str.characterAtIndex(3)
harfim.getLetter(bufi as AnyObject) ****
Run Code Online (Sandbox Code Playgroud)
在*部分我尝试.getLetter(bufi),. getLetter(bufi as String)我也尝试更改函数的参数类型.看起来像:func getLetter(letter:Character!)或func getLetter(letter:AnyObject!)......等找不到方法.需要帮助.谢谢
我知道它的noob问题,我真的在搜索之前搜索.但对于我想知道的内容并没有确切的答案.我们如何在不使用Objective C的情况下将字符串拆分为数组?例如:
var str = "Today is so hot"
var arr = str.componentsSeparatedByString(" ") // *
Run Code Online (Sandbox Code Playgroud)
想法:对我来说可能非常好,扩展了字符串类.但我不知道我是怎么做到的.
编辑:忘记导入基础.如果我导入基础它将工作.但是有没有办法扩展String类?谢谢
如何从剪贴板中读取字符串并将其写在按钮的标题上?我可以将字符串复制到剪贴板:
UIPasteboard.generalPasteboard().string = "Hello world"
Run Code Online (Sandbox Code Playgroud)
但是如何从剪贴板中读取该字符串并将其分配给String?
我是Swift编程语言的新手.我想从一些电子管服务器下载电影,想要离线播放.我正在使用Alamofire下载部分.我可以列出文件:
var file:String?
if let files = NSFileManager.defaultManager().contentsOfDirectoryAtPath(documentsDirectory, error: &error) as? [String] {
for filename in files {
// do stuff with filename
file = filename
println(filename)
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是如何将该文件用于我的目的.假设它的图像文件,我想在imageview中显示.
myImageView.image = UIImage(contentsOfFile: file) /* doesn't work*/
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助.
我是Swift语言的新手.我想开发简单的电影播放器应用程序进行学习.我在我的项目中添加了一些电影(".avi,.flv,.f4u ......哪种格式最好).我的观点很简单.我的视图上有一个按钮.IT称为"播放".当用户点按时在那个按钮上电影将开始.
另外我还需要播放音频文件,比如mp3或.mid文件.你能告诉我如何在Swift中做到这一点吗?如果你用例子解释,它将是完美的.
编辑
我不是要求所有代码.当我尝试将Objective C代码转换为Swift时,我感到困惑.我想知道如何在Swift中开发下面的代码?
NSString *path = [[NSBundle mainBundle] pathForResource:@"eminem1" ofType:@"mp4"];
MPMoviePlayerController *myPlayer = [[MPMoviePlayerController alloc] init];
myPlayer.shouldAutoplay = YES;
myPlayer.repeatMode = MPMovieRepeatModeOne;
myPlayer.fullscreen = YES;
myPlayer.movieSourceType = MPMovieSourceTypeFile;
myPlayer.scalingMode = MPMovieScalingModeAspectFit;
myPlayer.contentURL =[NSURL fileURLWithPath:path];
[self.view addSubview:myPlayer.view];
[myPlayer play];
Run Code Online (Sandbox Code Playgroud) 我正在开发一些tumblr客户端.我想在仪表板中下载所有照片并将其保存到documentDirectory.其中一些是jpg,有些是gif.我已经使用以下代码成功下载了jpg图像:
do {
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsURL.appendingPathComponent(fname)
if let pngImageData = UIImagePNGRepresentation(myImage!) {
try pngImageData.write(to: fileURL, options: .atomic)
print(fname + " - saved")
}
} catch {print(fname + " - not saved") }
Run Code Online (Sandbox Code Playgroud)
myImage是从URL下载的图像.此代码适用于jpg图像但不适合GIF.
最后我用这个读了这些文件:
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let filePath = documentsURL.appendingPathComponent(fname).path
if FileManager.default.fileExists(atPath: filePath) {
return UIImage(contentsOfFile: filePath)!
}
Run Code Online (Sandbox Code Playgroud)
它适用于jpg,但不适用于GIF.当我在GIF图像上尝试这种写/读代码时,我得到的图像不是动画.
你能告诉我一个例子的方式会很棒吗?
谢谢.
我正在尝试为 iPhone 开发下载管理器应用程序。我正在使用这个类进行下载操作:
import UIKit
import Foundation
typealias CompleteHandlerBlock = () -> ()
class newDownloadObject: NSObject,NSURLSessionDelegate, NSURLSessionDownloadDelegate {
var session: NSURLSession!
var handlerQueue: [String : CompleteHandlerBlock]!
class var sharedInstance: newDownloadObject {
struct Static {
static var instance : newDownloadObject?
static var token : dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = newDownloadObject()
Static.instance!.handlerQueue = [String : CompleteHandlerBlock]()
}
return Static.instance!
}
//MARK: session delegate
func URLSession(session: NSURLSession, didBecomeInvalidWithError error: NSError?) {
println("session error: \(error?.localizedDescription).")
}
func URLSession(session: NSURLSession, didReceiveChallenge challenge: …Run Code Online (Sandbox Code Playgroud) 这可能是重复的问题,但我花了很多时间寻求解决方案。我将mp4文件下载到文档目录。我可以使用此功能获取所有文件名:
func listFilesFromDocumentsFolder() -> [String]?
{
let fileMngr = FileManager.default;
let docs = fileMngr.urls(for: .documentDirectory, in: .userDomainMask)[0].path
return try? fileMngr.contentsOfDirectory(atPath:docs)
}
Run Code Online (Sandbox Code Playgroud)
我想获取所有这些文件的时间长度。让我展示一下我尝试的方法:
var downs = listFilesFromDocumentsFolder()!
for i in 0...downs.count - 1{
if(downs[i] == ".DS_Store"){
continue
}
let fileManager = FileManager.default;
let urls = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
if let documentDirectory:NSURL = urls.first as! NSURL as! NSURL{
let yourFinalVideoURL = documentDirectory.appendingPathComponent(downs[i])
let asset : AVURLAsset = AVURLAsset(url: yourFinalVideoURL!) as AVURLAsset
let totalSeconds = Int(CMTimeGetSeconds(asset.duration))
let minutes = totalSeconds / 60 …Run Code Online (Sandbox Code Playgroud)