如何从本地视频文件中快速创建缩略图?
例如,如果视频文件路径位于此处:
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
谢谢.
在下面的代码中,我想测试是否x
是SpecialController
.如果是的话,我想得到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) 我在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
.那么,这可能吗?怎么样?
给出代码片段:
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) 有人可以解释为什么@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
?或不?
我试图理解为什么我的子视图没有接收到触摸.
下面是一个显示我遇到的行为的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) 我可以使用malloc
并strcpy
替换它吗?哪一个更好?
例如:
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) 例如,我使用此代码更改被UIView
调用的帧位置Propo
:
self.Propo.frame.origin.x -= self.view.frame.width
Run Code Online (Sandbox Code Playgroud)
(Propo
在故事板中有限制)
但是当应用程序视图消失并重新出现时,它UIView
会将自身重置到其原始位置。我该怎么做才能解决它?我希望UIView
以编程方式更改它时保持其位置。
我已经尝试updateViewConstraints()
过任何其他附加...
我最近开始学习 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)