当我尝试在Xcode 7.3.1上存档我的应用程序时,我收到以下错误:
错误:无效的bitcode版本(生产者:'800.0.35.0_0'Reader:'703.0.31_0')clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我昨天能够成功存档我的应用程序,任何人都可以帮助我吗?
在Swift中,我们可以编写以下结构:
class SomeClass {}
let metaMetatype: SomeClass.Type.Type = SomeClass.Type.self
Run Code Online (Sandbox Code Playgroud)
这里metaMetatype
不符合类型AnyObject
(SomeClass.Type
确实).只要我们愿意,施工可以更长时间:
let uberMetatype: SomeClass.Type.Type.Type.Type.Type.Type.Type.Type.Type.Type = SomeClass.Type.Type.Type.Type.Type.Type.Type.Type.Type.self
Run Code Online (Sandbox Code Playgroud)
这个结构有什么意义吗?如果SomeClass.Type.Type
不是一个对象,这是什么,为什么我们能够声明它?
假设枚举或结构在实例中不存储任何值,则它们是静态的.静态枚举和静态结构之间有什么区别吗?
enum StaticEnum {
static var someStaticVar = 0
static func someStaticFunc() {}
}
struct StaticStruct {
static var someStaticVar = 0
static func someStaticFunc() {}
}
Run Code Online (Sandbox Code Playgroud) private weak var _delegate: SomeClassDelegate?
weak var delegate: SomeClassDelegate? {
get {
return _delegate
}
set {
_delegate = newValue
}
}
Run Code Online (Sandbox Code Playgroud)
这是有效的代码。将weak
关键字与计算delegate
属性一起使用是否有意义?逻辑上不;编译器将如何处理此代码?
我有一个基类
MyViewController: UIViewController
Run Code Online (Sandbox Code Playgroud)
由MyViewController.xib初始化,带有一些插座.我只在MyViewController.xib中设置了File Owner类,MyViewController.swift中MyViewController
没有任何init方法(都继承自UIViewController
),并且后续行正常工作:
let vc = MyViewController()
Run Code Online (Sandbox Code Playgroud)
查看属性设置,出口设置.
我想继承MyViewController
:
SecondViewController: MyViewController
{
override init()
{
super.init()
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
}
}
Run Code Online (Sandbox Code Playgroud)
现在我期待那条线
let vc = SecondViewController()
Run Code Online (Sandbox Code Playgroud)
将创建视图控制器,其中包含继承自的视图和插件MyViewController
,但vc中的所有插件均为零.看起来现在错过了MyViewController.xib文件.我究竟做错了什么?
两个表必须位于一个视图控制器中,例如通过段控制进行切换.数据是无限的,从核心数据中获取.我看到三个解决方案:
1)创建两个对象UITableView
并在共享数据源函数中填充它们; 保持其中一个tableviews隐藏
2)创建两个视图控制器容器,嵌入主视图控制器,并执行完全分离的数据源方法; 保持其中一个容器隐藏
3)仅使用一个表视图对象,在需要时重新加载数据,提供偏移量保存
需要你的意见.哪种解决方案更快,更可读,更正确?
更新
让我尝试实现第三种选择:
var tableViewOffsets = [Int: CGPoint]()
func segmentValueChanged(sender: UISegmentedControl) {
tableViewOffsets[tableView.tag] = tableView.contentOffset
tableView.tag = sender.selectedSegmentIndex
tableView.reloadData()
if let savedOffset = tableViewOffsets[tableView.tag] {
tableView.setContentOffset(savedOffset, animated: false)
}
}
func tableView_dataSourceMethodsTemplate(tableView: UITableView, ...) {
if tableView.tag == 0 {
//perform data source code for first tab
} else {
//perform data source code for second tab
}
}
Run Code Online (Sandbox Code Playgroud) 在我的代码(Swift 2.0 iOS 9)中,我创建了一个UIScrollView
并添加了一个UILabel
到 ScrollView 以显示大量文本。文本通过加载viewDidLoad()
并从包中的文件加载。
我用过numberOfLines = 0
,label.lineBreakMode = .ByWordWrapping
但只显示了 8 行文本。在代码下方,您将看到代码结果的图像。我给了颜色UILabel
并UIScrollView
显示了它们的界限。
override func viewDidLoad() {
super.viewDidLoad()
self.configureView()
let sv = UIScrollView(frame: self.view.bounds)
sv.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
self.view.addSubview(sv)
sv.backgroundColor = UIColor.greenColor()
var y: CGFloat = 10
let file = detailItem as! String
if let sectionsFile = NSBundle.mainBundle().pathForResource(file, ofType: "txt") {
if let sectionText = try? String(contentsOfFile: sectionsFile, usedEncoding: nil) {
let label = UILabel()
label.numberOfLines …
Run Code Online (Sandbox Code Playgroud) 我使用Xcode 8和swift 2.3,但是UIPickerView.dataSource = (self as! UIPickerViewDataSource)
当我尝试使用func时,我遇到了一个问题UIPicker
,这是我的代码:
import UIKit
class ViewController: UIViewController {
let Num = ["1","2","3","4","5","6"]
@IBOutlet weak var UIPicker: UIPickerView!
override func viewDidLoad() {
super.viewDidLoad()
func numberOfRows(inComponent component: Int) -> Int {return 1}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {return Num.count}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {return Num[row]}
UIPicker.dataSource = (self as! UIPickerViewDataSource)
UIPicker.delegate = (self as! UIPickerViewDelegate)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning() …
Run Code Online (Sandbox Code Playgroud) 试图理解SequenceType
协议:
protocol SequenceType {
associatedtype SubSequence
@warn_unused_result func dropFirst(_ n: Int) -> Self.SubSequence
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
为什么我们需要associatedtype SubSequence
,为什么Self
不需要SequenceType
?
我有一个理解问题...我创建了两个相似的视图(相同的原点和相同的大小)和剖面视图,而我创建了这些视图 - 一个在viewDidLoad
另一个中viewDidAppear
- 当我在原点x和y中放置相似的起点引用第i部分的每个视图都将这些视图放在不同的位置.有人可以解释一下这些观点不在同一个位置的原因是什么?
import UIKit
class ViewController: UIViewController {
@IBOutlet var sec: UIView!
override func viewDidLoad() {
let shape = UIView(frame: CGRect(x: sec.frame.width/2, y: sec.frame.height/2, width: 100, height: 100));
shape.backgroundColor = UIColor.redColor();
view.addSubview(shape);
}
override func viewDidAppear(animated: Bool) {
let shape2 = UIView(frame: CGRect(x: sec.frame.width/2, y: sec.frame.height/2, width: 100, height: 100));
shape2.backgroundColor = UIColor.greenColor();
view.addSubview(shape2);
}
}
Run Code Online (Sandbox Code Playgroud) swift ×9
ios ×5
ios9 ×1
label ×1
objective-c ×1
uiscrollview ×1
uitableview ×1
viewdidload ×1
xcode ×1
xcode8 ×1