小编Ale*_*gin的帖子

如何从Swift中的UIColor获取RGB代码(INT)

我想在Swift中获得UIColor的RGB值:

let swiftColor = UIColor(red: 1, green: 165/255, blue: 0, alpha: 1)
println("RGB Value is:");
println(swiftColor.getRGB()); <<<<<< How to do that ?
Run Code Online (Sandbox Code Playgroud)

在Java中我会这样做:

Color cnew = new Color();
int iColor = cnew.rgb(1, 165/255, 0);
System.out.println(iColor);
Run Code Online (Sandbox Code Playgroud)

我应该如何获得这个价值?

rgb uicolor swift

52
推荐指数
5
解决办法
3万
查看次数

在Swift中切换语句

我正在学习Swift的语法并且想知道为什么下面的代码不能正常工作,因为我期望它:

for i in 1...100{

    switch (i){
    case 1:
        Int(i%3) == 0
        println("Fizz")
    case 2:
        Int(i%5) == 0
        println("Buzz")
    default:
        println("\(i)")
    }  
}
Run Code Online (Sandbox Code Playgroud)

我想在每次数字被3(3,6,9,12等)整除时打印Fizz,并在每次被5整除时打印Buzz.缺少什么部分的拼图?

注意:我确实使用以下方法解决了它:

for ( var i = 0; i < 101; i++){

    if (Int(i%3) == 0){
        println("Fizz")
    }   else if (Int(i%5) == 0){
        println("Buzz")
    }   else {
        println("\(i)")
    }   
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用Switch解决这个问题.谢谢.

switch-statement ios swift

35
推荐指数
3
解决办法
8万
查看次数

如何解压缩包含一个文件的大型zip文件并使用swift以字节为单位获取进度?

我尝试解压缩只包含一个项目(超过100MB)的大型zip文件,并希望在解压缩过程中显示进度.

我找到了解决方案,根据解压缩的文件数量可以确定进度,但在我的情况下,我只有一个大文件.所以我猜它必须由解压缩的字节数决定?

实际上我使用SSZipArchive与以下代码工作正常:

    var myZipFile:NSString="/Users/user/Library/Developer/CoreSimulator/Devices/mydevice/ziptest/testzip.zip";
    var DestPath:NSString="/Users/user/Library/Developer/CoreSimulator/Devices/mydevice/ziptest/";


    let unZipped = SSZipArchive.unzipFileAtPath(myZipFile as! String, toDestination: DestPath as! String);
Run Code Online (Sandbox Code Playgroud)

我找不到解决方法.

有人有样品的提示,样品或链接吗?

更新: 以下代码看起来会按预期工作,但只有一个文件被解压缩时,处理程序将只被调用一次(在解压缩结束时):

func unzipFile(sZipFile: String, toDest: String){

        SSZipArchive.unzipFileAtPath(sZipFile, toDestination: toDest, progressHandler: {
            (entry, zipInfo, readByte, totalByte) -> Void in


            println("readByte : \(readByte)") // <- This will be only called once, at the end of unzipping. My 500MB Zipfile holds only one file. 
            println("totalByte : \(totalByte)")


            //Asynchrone task
            dispatch_async(dispatch_get_main_queue()) {
                println("readByte : \(readByte)")
                println("totalByte : \(totalByte)")

                //Change progress value

            }
            }, completionHandler: …
Run Code Online (Sandbox Code Playgroud)

streaming unzip archive ios swift

17
推荐指数
1
解决办法
3342
查看次数

如何使用NSKeyedUnarchiver的代理?

我正在使用NSKeyedUnarchiver来取消归档对象并希望使用委托(NSKeyedUnarchiverDelegate),但我的代理不会被调用.存档和取消存档工作正常,但不调用Delegates(unarchiver和unarchiverDidFinish).有人可以帮忙吗?

我有以下实现:

        class BlobHandler: NSObject , NSKeyedUnarchiverDelegate{

           func load() -> MYOBJECTCLASS{          
              let data:NSData? = getBlob();      
              var mykeyedunarchiver:NSKeyedUnarchiver=NSKeyedUnarchiver(forReadingWithData: data!);
              mykeyedunarchiver.delegate = self;
              let temp=mykeyedunarchiver.decodeObjectForKey("rootobject")
// No delegates are called
                            if temp==nil {
                                blobsexists=false;
                            }else{
                                objectreturn = temp! as! MYOBJECTCLASS;
                                return objectreturn;
                            }
        }

    func save1(myobject:MYOBJECTCLASS){
            let data = NSMutableData()
            var keyedarchiver:NSKeyedArchiver=NSKeyedArchiver(forWritingWithMutableData: data);
            keyedarchiver.encodeObject(maptheme, forKey: "rootobject");

            let bytes = data.bytes;
            let len=data.length; 
            saveblob(bytes);
    }
Run Code Online (Sandbox Code Playgroud)

从未调用以下代理,这些代理也在我的Blobhandler中实现:

func unarchiver(unarchiver: NSKeyedUnarchiver, cannotDecodeObjectOfClassName name: String, originalClasses classNames: [String]) -> AnyClass? {
    print("I am in unarchiver !"); …
Run Code Online (Sandbox Code Playgroud)

delegates nskeyedunarchiver swift

10
推荐指数
1
解决办法
755
查看次数

在java中的现有浏览器/选项卡中打开URL

使用以下代码,我设法使用我的外部浏览器(在我的情况下 - Firefox)打开一个URL.每个URL打开操作都会创建一个新选项卡,随着时间的推移,我有数百个选项卡,我想阻止它们.我用这个工具来直观地检查网页中的某些日期,当按下一个时,它应该在同一个标​​签中显示下一页.

我如何实现这一目标?

码:

public static void openWebpage(URL url) {
    try {
        openWebpage(url.toURI());
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
}

public static void openWebpage(URI uri) {
    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
        try {
            desktop.browse(uri);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java browser url firefox

9
推荐指数
1
解决办法
3126
查看次数

如何在AppRTC iOS应用程序中获取帧数据以进行视频修改?

我目前正在尝试对Swift 中 iOS 版 AppRTC 应用程序中传入的 WebRTC 视频流进行一些修改(该应用程序又基于Objective-C 版本)。为此,我需要访问存储在类 RTCI420Frame 的帧对象中的数据(这是libWebRTC的 Objective-C 实现的基本类)。特别是,我需要一个字节数组:[UInt8]和帧的大小。该数据将用于进一步处理和添加一些过滤器。

问题是, RTCVideoTrack / RTCEAGLVideoView 上的所有操作都是在预编译的libWebRTC.a的引擎盖下完成的,它是从上面链接的官方 WebRTC 存储库编译的,并且获得它的自定义构建相当复杂,所以我更喜欢使用示例 iOS 项目中可用的构建;根据我的理解,它应该具有所有可用的功能。

我正在研究 RTCVideoChatViewController 类,特别是remoteView / RemoteVideoTrack,但在访问帧本身方面没有成功,花了很多时间研究官方存储库中的 libWebRTC 源代码,但仍然无法解决访问帧的问题框架数据以供自己使用它进行操作。很高兴获得任何帮助!

video-streaming webrtc apprtcdemo swift apprtc

5
推荐指数
1
解决办法
2237
查看次数