2016-11-02 3 views
11

Ich habe Code in Ziel c geschrieben. Ich möchte diesen Code in den swift3-Code konvertieren.Reload Abschnitt Methode in Swift 3?

[_expandableTableView reloadSections:[NSIndexSet indexSetWithIndex:gestureRecognizer.view.tag] withRowAnimation:UITableViewRowAnimationAutomatic]; 

Nach der Verwendung von Online-Tool Umwandlung Code unten gab es mir, aber es funktioniert mir nicht

expandableTableView.reloadSections(IndexSet(index: gestureRecognizer.view!.tag), with: .automatic) 

Bitte sagen, wie es zu tun?

+0

"funktioniert nicht" bedeutet ...? Was sagt der Fehler? –

Antwort

25

tun wie in swift3 für weitere Informationen this

expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic) 
5

Hinweis sehen, dass nach der Umwandlung NSIndexSetIndexSet wurden. IndexSet ist der Swift-Overlay Rahmen Stiftung für NSIndexSet:

Der Swift-Overlay Rahmen Foundation stellt die IndexSet Struktur, die die NSIndexSet Klasse und ihre wandelbaren Unterklasse überbrückt, NSMutableIndexSet. Der IndexSet-Werttyp bietet die gleiche -Funktionalität wie der NSIndexSet-Referenztyp, und die beiden können austauschbar in Swift-Code verwendet werden, der mit Objective-C APIs interagiert. Dieses Verhalten ähnelt der Art und Weise, in der Swift die Standardzeichenfolge, die numerischen Zahlen und die Auflistungstypen in die entsprechenden Foundation-Klassen überbrückt.

Wenn Sie die Beschreibung von reloadSections Methodensignatur überprüft, werden Sie feststellen, dass es ist:

reloadSections (_ Sektionen: IndexSet, mit Animation: UITableViewRowAnimation

sections Parameter ist IndexSet aber nicht NSIndexSet mehr

Also, wha t Sie tun können, ist:

_expandableTableView.reloadSections(NSIndexSet(index: gestureRecognizer.view.tag) as IndexSet, with: .automatic) 

OR Ich ziehe IndexSet hinzuzufügen, ohne auch nur mit der as IndexSet:

_expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic) 
+0

verwirrt. Bedeutet dies, dass Sie nicht einfach tun können: '_expandableTableView.reloadSections ([0]), mit: .automatic)' <- Dies sollte nur den Abschnitt '0' neu laden – Honey

19

Reload Abschnitt in Swift 3,0

dh Nachladen 0. Schnitt 0th Section, da tableview standardmäßig einen Abschnitt hat, der Index 0 ist.

//let myRange: ClosedRange = 0...0 

self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableViewRowAnimation.top)