好的,所以我找到了很多有关UITableView和多个节的信息,但是,它们总是包含字符串,数组,静态数据,Obj-
C或其他我无法转换为我的情况的信息,主要是因为我完全开发应用程序的新手。非常感谢您的帮助,因为一个多月以来,我一直在尝试各种方法,但均未成功。
所以我有多个具有以下属性的Dog对象:
class Dog: Object {
dynamic var name = ""
dynamic var race = ""
dynamic var age = 0
dynamic var owner = ""
dynamic var dogID = ""
override static func primaryKey() -> String? {
return "dogID"
}
}
在ViewController文件中,有以下代码(删除了不相关的行):
let realm = try! Realm()
var dogResults : Results<Dog>?
override func viewDidLoad() {
super.viewDidLoad()
self.dogResults = realm.objects(Dog.self)
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.dogResults!.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let dog = self.dogResults![indexPath.row]
cell.textLabel?.text = dog.name
}
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
// ?
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// ?
}
我想通过Dog对象的“ race”属性来组织这些部分,但是我很难实现这一点。
我看到了一些示例,其中他们在各节中使用“ if”语句,但我已经尝试过并无法获得正确的结果,但是,我希望在其他示例中看到的更干净的方法是使用:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data[section].count
}
我进行了各种尝试,但是作为一个Realm数据库,我在遵循大多数示例时遇到了问题。
感谢您的时间。
以下是一些示例代码,这些代码完全可以满足您的需求:
import UIKit
import RealmSwift
class Dog: Object {
dynamic var name = ""
dynamic var race = ""
dynamic var age = 0
dynamic var owner = ""
dynamic var dogID = ""
override static func primaryKey() -> String? {
return "dogID"
}
convenience init(name: String, race: String, dogID: String) {
self.init()
self.name = name
self.race = race
self.dogID = dogID
}
}
class TableViewController: UITableViewController {
let items = try! Realm().objects(Dog.self).sorted(["race", "name"])
var sectionNames: [String] {
return Set(items.valueForKeyPath("race") as! [String]).sort()
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
let realm = try! Realm()
if realm.isEmpty {
try! realm.write {
realm.add(Dog(name: "Bailey", race: "Golden Retrievers", dogID: "0"))
realm.add(Dog(name: "Bella", race: "German Shepherds", dogID: "1"))
realm.add(Dog(name: "Max", race: "Bulldogs", dogID: "2"))
realm.add(Dog(name: "Lucy", race: "Yorkshire Terriers", dogID: "3"))
realm.add(Dog(name: "Charlie", race: "Bulldogs", dogID: "4"))
realm.add(Dog(name: "Molly", race: "German Shepherds", dogID: "5"))
realm.add(Dog(name: "Buddy", race: "German Shepherds", dogID: "6"))
realm.add(Dog(name: "Daisy", race: "Siberian Huskies", dogID: "7"))
}
}
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return sectionNames.count
}
override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return sectionNames[section]
}
override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
return items.filter("race == %@", sectionNames[section]).count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
cell.textLabel?.text = items.filter("race == %@", sectionNames[indexPath.section])[indexPath.row].name
return cell
}
}
看起来像这样:
问题内容: 我有3个类别,我一直将其用作一个部分。在那部分中,我必须填充字典数组中的数据。这是我的代码:- 我需要将items数组填充到表类别中。如果有人可以回答。谢谢! 问题答案: 如果类别A的itemA数组,类别B的itemB数组等等,那么您可以通过这种方式返回数组计数。 注意: 如果您创建一个结构或自定义类的单个数组,这将减少所有使用单个数组的数组的数量。
我正在尝试做一个使用组合键的场景。我想有更多的公钥,这样我就可以用其中任何一个密钥来签署一个txn。 该场景的参考如下:https://docs.corda.net/api/kotlin/corda/net.corda.core.crypto/-composite-key/index.html 根据我的理解,deployNodes任务使用单个公钥生成节点。如果我偏离了轨道,请纠正我。
我在尝试在Swift 3.0.2iOS项目中使用Realm时遇到了一个问题。从简单开始,我想将它应用于一个名为的类: 看起来很简单,对吧?尽管如此,我还是遇到了以下编译错误: 有人知道我该怎么解决这个问题吗?从我在网上看到的来看,我应该没有必要实现那些方法。 设置: X代码8.2.1 Swift 3.0.2 使用Cocoapod安装Realm
问题内容: 与多个用户/设备一起使用Apple的新ARKit的最佳方法是什么? 似乎每个设备都可以分别了解自己的场景。到目前为止,我最好的猜测是使用原始特征点位置,并尝试在设备之间进行匹配,以将不同的视图点粘合在一起,因为ARKit没有提供任何绝对参考引用。 ===编辑1,我尝试过的事情=== 1)特征点 我一直在玩耍并暴露了原始特征点,现在我确信在它们的当前状态下它们是死胡同: 它们不是原始特征
问题内容: 我有一个带有HornetQ的JBoss-6服务器和一个队列: 有一个不同的消费者(在不同的机器)连接到这个队列中,但只有一个 单一的 消费者是活动的时间。如果我关闭此使用者,则消息将立即由其他使用者之一处理。 由于我的消息需要一些耗时的处理,因此我希望多个使用者同时处理其唯一消息。 我记得在早期版本的JBoss中也有类似的情况,该设置可以正常工作。在Jboss-6中,消息传递系统运行良
问题内容: 我正在尝试检测具有扩展名列表的文件。 问题答案: 为此使用元组。 不必每次都转换,只需将其转换为元组一次即可。