我正在使用Swift 4和Xcode 9.2编写程序.我在编写可编码类(完全是类,而不是struct)时遇到了困难.当我尝试从另一个类继承一个类时,JSONEncoder不从子类(子)获取所有属性.请看这个:
class BasicData: Encodable {
let a: String
let b: String
init() {
a = "a"
b = "b"
}
}
class AdditionalData: BasicData {
let c: String
init(c: String) {
self.c = c
}
}
let encode = AdditionalData(c: "c")
do {
let data = try JSONEncoder().encode(encode)
let string = String(data: data, encoding: .utf8)
if let string = string {
print(string)
}
} catch {
}
Run Code Online (Sandbox Code Playgroud)
它会打印出来: {"a":"a","b":"b"}
但我需要这个: {"a":"a","b":"b","c":"c"}
它看起来像c
类的属性AdditionalData
只是失去了某处,不知何故.
所以问题是:如果我有使用协议编码的类Encodable如何正确地创建子类(此类的子类,继承)类?
我会感谢任何帮助或建议.
我正在使用Swift 3.1和Xcode 8.3.3编写程序.我想创建一个类,负责在键盘出现和消失时移动整个视图.但是我遇到了使用string中的参数创建自定义Selector的困难.要显示或隐藏键盘我们需要功能:
func keyboardWillShow(notification: Notification) {
//Code moving view when keyboard appears
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个这样的选择器:
let selector = Selector(("keyboardWillShow")
NotificationCenter.default.addObserver(view, selector: selector, name: .UIKeyboardWillShow, object: anyView.view.window)
Run Code Online (Sandbox Code Playgroud)
它正在编译,但是当键盘出现时,它会崩溃.因为它是独立的类我不能使用这种结构:
#selector(keyboardWillShow)
Run Code Online (Sandbox Code Playgroud)
因为它将Swift函数转换为Objective-C函数(添加@objc).所以问题是:如何用参数字符串创建一个Selector表单?
PS我可以把整个代码放在那里,但我不想要问题非常大,所以我会编辑问题,如果有人问...
读过的所有人,您好,谢谢。我正在使用Xcode 8.2.1和Swift 3.0为iOS设备编写Viber或WhatsApp之类的应用程序。我有一个问题:我希望我的应用程序有一个导航控制器,但不是一个简单的控制器,我希望它是自定义的。WhatsApp有一个印刷屏幕需要理解,我正在尝试实现以下目标:
如我们所见,该导航控制器具有3个按钮,即标签和带有头像的图像。我也想将颜色更改为绿色。由于这个原因,我创建了类:
import UIKit
class CustomNavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationBar.barTintColor = UIColor.green
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 39, height: 39))
imageView.contentMode = .scaleAspectFit
let image = UIImage(named: "logo")
imageView.image = image
navigationItem.titleView = imageView
}
}
Run Code Online (Sandbox Code Playgroud)
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 39, height: 39))
imageView.contentMode = .scaleAspectFit
let image = UIImage(named: "logo")
imageView.image = image
navigationItem.titleView = imageView
Run Code Online (Sandbox Code Playgroud)
到ViewController,将显示带有徽标的图像,但是我需要完整的类,该类将在某个地方连接(例如,在Interface Builder中),它将使按钮,图像等构成一个漂亮的导航控制器。此外,我可以使用另一个导航控制器,并将其连接到不同的屏幕,例如,在上面不需要图像,仅需要按钮。所以问题是:如何制作自定义的Navigation Controller类?
感谢您的帮助,我将非常高兴和感谢。
uinavigationbar uinavigationcontroller uinavigationitem ios swift3
我正在iOS上编写一个程序,我正面临着这个错误:
2015-11-06 10:57:24.289 NETFNET [2503:976392] CoreData:错误:严重的应用程序错误.在Core Data更改处理期间捕获到异常.这通常是NSManagedObjectContextObjectsDidChangeNotification的观察者中的错误. - [__ NSCFSet addObject:]:尝试使用userInfo插入nil(null)2015-11-06 10:57:24.293 NETFNET [2503:976392]***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [ __NSCFSet addObject:]:尝试插入nil'
我想,我试图从主线程和后台线程同时访问数据库.我已经看到了很多针对Objective C的解决方案,但没有针对Swift的解决方案(我不知道Objective C ......).不幸的是,我不知道如何使用Grand Central Dispatch,事实上,我的程序并不需要几个步骤(我的意思是它需要它,但是如果某个线程丢失一个函数的信息一次,没有什么不好的意思发生).我只想在Swift 1或2上有稳定的程序,所以我会感谢任何帮助.
我正在使用 Xcode 10.1 和 Swift 4.2.1。我有这样的标签栏应用程序:
由于某些原因,我想隐藏/删除其中一个栏以接收如下内容:
那么,问题来了:如何隐藏Tab Bar的一个Tab呢?指定:按下某个按钮,隐藏一个选项卡。再按一次,Tab 会再次出现。
ios ×3
swift ×3
codable ×1
core-data ×1
decodable ×1
encodable ×1
inheritance ×1
objective-c ×1
observers ×1
selector ×1
swift3 ×1
swift4 ×1
uitabbar ×1
uitabbaritem ×1
xcode ×1