小编Bas*_*Zen的帖子

在swift中从本地视频创建缩略图

如何从本地视频文件中快速创建缩略图?

例如,如果视频文件路径位于此处:

file:///Users/Dev/Library/Developer/CoreSimulator/Devices/F33222DF-D8F0-448B-A127-C5B03C64D0DC/data/Containers/Data/Application/4BC62DBF-0108-453C-9324-5BC0E356FE24/tmp/trim.059D11E6-F0EF-43DB-9E97-CA4F1F95D6B6.MOV

谢谢.

iphone video-capture ios swift

38
推荐指数
6
解决办法
3万
查看次数

在Swift中,如何转换为具有关联类型的协议?

在下面的代码中,我想测试是否xSpecialController.如果是的话,我想得到currentValue一个SpecialValue.你怎么做到这一点?如果没有演员,那么其他一些技巧.

最后一行不会编译.错误是:协议"SpecialController"只能用作通用约束,因为它具有Self或关联类型要求.

protocol SpecialController {
    associatedtype SpecialValueType : SpecialValue
    var currentValue: SpecialValueType? { get }
}
...
var x: AnyObject = ...
if let sc = x as? SpecialController {  // does not compile
Run Code Online (Sandbox Code Playgroud)

generics protocols associated-types swift swift3

20
推荐指数
1
解决办法
4604
查看次数

从Objective C中的Swift类继承

我在Xcode 7项目中成功地混合和匹配Obj-C和Swift.但是,我似乎无法弄清楚在Objective C类中如何从Swift类继承(是的,我知道将Swift类声明@objc为可见性).在这种情况下,所需的Swift超类MySwiftViewController是其子类UIViewController.现在,在Obj-C中,我直接继承UIViewController并且无法访问我添加的功能MySwiftViewController.

这是我的理解:

- 要将Obj-C类声明为继承某些东西,它必须位于':'之后的.h文件中:

#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@end
Run Code Online (Sandbox Code Playgroud)

- 为了使Swift类可见,即#import:

#import "MyProject-Swift.h"
Run Code Online (Sandbox Code Playgroud)

但是,您无法将Swift自动生成的桥接头导入Obj-C .h文件.您也无法使用前向声明不透明的超类@class.那么,这可能吗?怎么样?

inheritance objective-c ios swift

19
推荐指数
1
解决办法
1万
查看次数

printf()var-arg引用如何与堆栈内存布局交互?

给出代码片段:

int main()
{
    printf("Val: %d", 5);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有没有保证编译器会存储"Val: %d"'5'连续?例如:

+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| ... |  %d | ' ' | ':' | 'l' | 'a' | 'V' | '5' | ... |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
      ^                                   ^     ^
      |           Format String           | int |
Run Code Online (Sandbox Code Playgroud)

这些参数究竟是如何在内存中分配的?

此外,printf函数是否相对于格式字符串或绝对值访问int?例如,在数据中

+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| ... |  %d | ' ' | ':' | 'l' | 'a' | 'V' | '5' | ... |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
      ^                                   ^     ^
      |           Format String           | int | …
Run Code Online (Sandbox Code Playgroud)

c memory stack exploit string-formatting

13
推荐指数
1
解决办法
1529
查看次数

@objc关键字扩展子类行为

有人可以解释为什么@objc这里需要关键字来编译代码吗?

据我所知,这个关键字用于工作ObjC消息方法调度.但这不是一个NSObject例子.

 class MyClass {
 }

 extension MyClass {
     @objc func extensionMethod() { /// THIS LINE
         print("A")
     }
 }

 class SubClass: MyClass {
     override func extensionMethod() {
         print("B")
     }
 }
Run Code Online (Sandbox Code Playgroud)

@objc关键字是否启用消息调度以及dynamic?或不?

swift swift4 swift4.1

12
推荐指数
1
解决办法
2727
查看次数

UIView子视图没有接收到触摸

我试图理解为什么我的子视图没有接收到触摸.

下面是一个显示我遇到的行为的gif:当我点击右边的青色按钮时,没有任何反应(左边视图的背景应该改变颜色).当我单击左侧的绿色按钮时,它会正确接收触摸事件,附加的TouchDown操作将触发,并且视图的颜色会发生变化.

在此输入图像描述

这个"应用程序"显然不是一个真正的应用程序,只是为了说明我遇到的行为.我真正想要学习如何实现你在许多应用程序中看到的常见"滑出菜单"模式; 通常带有随附的汉堡包按钮.

在许多这些应用程序中,看起来主要的应用程序内容被移到一边显示菜单,"隐藏"在应用程序下面,就像它一样.我试图在这里复制相同的行为.

我在这里粘贴我的ViewController代码.您在下面看到的代码就是我拥有的一切.

import UIKit

class ViewController: UIViewController {

    var originalX : CGFloat!
    var originalY : CGFloat!

    var containerView = UIView()

    var button : UIButton!
    var button2 : UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        originalX      = self.view.frame.origin.x
        originalY      = self.view.frame.origin.y

        button = UIButton(frame: CGRectMake(200, 25, 100, 100))
        button.backgroundColor = UIColor.greenColor()
        button.addTarget(self, action: "foo", forControlEvents: .TouchDown)

        view.addSubview(button)

        containerView.frame = CGRectMake(self.view.frame.width, originalY, 150, self.view.frame.height)
        containerView.userInteractionEnabled = true
        containerView.backgroundColor = UIColor.magentaColor()
        containerView.clipsToBounds = false

        button2 = UIButton(frame: CGRectMake(25, 25, 100, …
Run Code Online (Sandbox Code Playgroud)

uiview ios swift

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

什么时候使用strdup是个好主意(vs malloc/strcpy)

我可以使用mallocstrcpy替换它吗?哪一个更好?

例如:

char *s = "Global View";
char *d;
d = strdup(s);
free(d);
Run Code Online (Sandbox Code Playgroud)

要么

char *s = "Global View";
char *d = malloc(strlen(s) +1);
strcpy(d,s);
free(d);
Run Code Online (Sandbox Code Playgroud)

c

4
推荐指数
1
解决办法
3185
查看次数

在 Swift 中在运行时更改受自动布局约束的 UIView 的框架

例如,我使用此代码更改被UIView调用的帧位置Propo

        self.Propo.frame.origin.x -= self.view.frame.width
Run Code Online (Sandbox Code Playgroud)

Propo在故事板中有限制)

但是当应用程序视图消失并重新出现时,它UIView会将自身重置到其原始位置。我该怎么做才能解决它?我希望UIView以编程方式更改它时保持其位置。

我已经尝试updateViewConstraints()过任何其他附加...

uiview ios autolayout swift

3
推荐指数
1
解决办法
2586
查看次数

如何解决“'main()'的多重定义”C编译错误?

我最近开始学习 C 并且必须创建程序,从标准输入中扫描两个整数值,用空格分隔,然后 printf 这两个整数的总和。必须能够接受负值。我正在使用 repl.it 编写代码,然后粘贴到 .c 中进行编译。

试图:

#include <stdio.h>

int main() {    

    int number1, number2, sum;

    printf("Enter two integers: ");

    scanf("%d", &number1);

    scanf("%d", &number2);

    // calculating sum

    sum = number1 + number2;      

    printf("%d + %d = %d", number1, number2, sum);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

[OP 最初说“除了这个打印”——但这不是程序输出——这是在程序运行之前编译过程中的错误输出]

除非我尝试编译 IDE 时输出错误

/tmp/t2-8eec00.o: In function `main':
t2.c:(.text+0x0): multiple definition of `main'
/tmp/t1-f81f83.o:t1.c:(.text+0x0): first defined here
/tmp/t3-72a7ab.o: In function `main':
t3.c:(.text+0x0): multiple definition of `main'
/tmp/t1-f81f83.o:t1.c:(.text+0x0): first defined here
/tmp/main-2c962b.o: In function …
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
81
查看次数