让我们说我有这个课程:
class X {
public:
int x;
};
Run Code Online (Sandbox Code Playgroud)
我看到如果我在本地创建一个X实例,x将不会初始化为0,只有我全局创建它.
这是否意味着默认构造函数不是由编译器合成的(我怀疑)对于创建localy的对象,或者它将被合成但不是x值的零,如果是这种情况,为什么会这样?
我正在使用变换算法和std :: toupper来实现这一点,但这可以在一行中完成,像这样吗?
transform(s.begin(), s.end(), ostream_iterator<string>(cout, "\n"),std::toupper);
Run Code Online (Sandbox Code Playgroud)
我得到错误,所以我必须为此创建一个函数并使用transform调用它,或者我可以使用一些适配器?
我在一些代码中看到了这个函数,但我在谷歌上找不到关于它的文档。有人可以解释它的作用吗,有没有其他选择?
谢谢。
我想用于Dynamic Type我的应用程序中的所有文本。我用的字体是Apple的San Francisco.
我不喜欢默认值,因为它们并不真正用于Bold文本。
以下是所有这些内容的列表:
Style Weight Point size Leading Tracking
--------------------------------------------------------
Large Title Regular 34pt 41pt 11pt
Title 1 Regular 28pt 34pt 13pt
Title 2 Regular 22pt 28pt 16pt
Title 3 Regular 20pt 25pt 19pt
Headline Semi-Bold 17pt 22pt. -24pt
Body Regular 17pt 22pt. -24pt
Callout Regular 16pt 21pt. -20pt
Subhead Regular 15pt 20pt. -16pt
Footnote Regular 13pt 18pt. -6pt
Caption 1 Regular 12pt 16pt 0pt
Caption 2 Regular 11pt 13pt 6pt
Run Code Online (Sandbox Code Playgroud)
那么有没有一种方法可以准确地配置文本样式呢?
跟进我之前的问题:
我设法使我的枚举符合 Codable 协议,实现了 init() 和encode(),它似乎可以工作。
enum UserState {
case LoggedIn(LoggedInState)
case LoggedOut(LoggedOutState)
}
enum LoggedInState: String {
case playing
case paused
case stopped
}
enum LoggedOutState: String {
case Unregistered
case Registered
}
extension UserState: Codable {
enum CodingKeys: String, CodingKey {
case loggedIn
case loggedOut
}
enum CodingError: Error {
case decoding(String)
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
if let loggedIn = try? values.decode(String.self, forKey: .loggedIn) {
self = .LoggedIn(LoggedInState(rawValue: …Run Code Online (Sandbox Code Playgroud) 可以说我有这个界面和类:
interface IListener
{
void f();
void g();
void h();
}
class Adapter implements IListener
{
void f() {}
void g() {}
void h() {}
}
Run Code Online (Sandbox Code Playgroud)
如果它们什么也不做,那么实现thoose接口方法有什么意义呢?
问题来自设计模式Java工作簿.
我想通过FTP连接到一个地址,然后删除所有内容.目前我正在使用此代码:
from ftplib import FTP
import shutil
import os
ftp = FTP('xxx.xxx.xxx.xxx')
ftp.login("admin", "admin")
for ftpfile in ftp.nlst():
if os.path.isdir(ftpfile)== True:
shutil.rmtree(ftpfile)
else:
os.remove(ftpfile)
Run Code Online (Sandbox Code Playgroud)
我的问题是他在尝试删除第一个文件时总是遇到此错误:
os.remove(ftpfile)
WindowsError: [Error 2] The system cannot find the file specified: somefile.sys
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么?
这是我的设置.我有一个UIScrollView在我的主视图控制器的顶部,我加载了多个视图控制器.我还有一个Add按钮,它将使用Push segue呈现一个新的视图控制器.
我希望这个视图控制器也只在滚动视图的顶部而不是全屏加载.
到目前为止,我尝试了两种不同的东西,但没有任何工作:
在滚动视图中添加视图控制器prepareForSegue:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let addViewController = segue.destination as! AddViewController
addChildViewController(addViewController)
addViewController.view.frame = CGRect(x: 0, y: 0, width: width, height: height)
scrollView.addSubview(addViewController.view)
didMove(toParentViewController: self)
}
Run Code Online (Sandbox Code Playgroud)在UIButton操作中添加视图控制器:
@IBAction func addDidTouch(_ sender:AnyObject){
let addViewController = AddViewController()
addChildViewController(addViewController)
addViewController.view.frame = CGRect(x: 0, y: 0, width: width, height: height)
scrollView.addSubview(addViewController.view)
didMove(toParentViewController: self)
}
Run Code Online (Sandbox Code Playgroud)
这两个解决方案都崩溃了我的应用程序.
有没有办法正确实现这个?
我试图在Xcode中为视图添加一些渐变,为了简单起见,我尝试将我的方法添加为UIView的扩展:
extension UIView {
func applyGradient() {
let gradient = CAGradientLayer()
gradient.colors = [UIColor(hex: "F5FF8C").cgColor,
UIColor(hex: "F1F99D").cgColor,
UIColor(hex: "FDFFE0").cgColor]
gradient.locations = [0.0, 0.5, 1.0]
self.layer.insertSublayer(gradient, at: 0)
}
}
Run Code Online (Sandbox Code Playgroud)
但显然当我在我的电话中说这不起作用时viewDidLoad:
self.myView.applyGradient()
Run Code Online (Sandbox Code Playgroud)
有人能指出我做错了什么吗?
所以我有两个UITextFields:名字和金额和两个UIButtons:收入,费用.
当我按下费用按钮时,amount如果按下收入按钮,我希望我的文本字段颜色变为红色或绿色.
仅当amount文本字段处于焦点时才有效,如果name文本字段处于焦点,则颜色不会更改为金额.
有没有办法改变文本字段的颜色,如果它不在焦点?
编辑:
这是我改变颜色的代码:
@IBAction func typeBtnPressed(_ sender: UIButton) {
if sender.tag == Buttons.expense.rawValue {
amountTxt.textColor = .red
} else {
amountTxt.textColor = .green
}
}
Run Code Online (Sandbox Code Playgroud)