![]() |
1
3
您应该只设置一次数据源,而不应该是NSarray。从中提取记录的数据容器可以更改,但数据源应始终相同。在大多数情况下,数据源应该只是视图控制器。然后视图控制器应该在 UITableViewDataSource protocol 包括:
NSarray不响应这些方法中的任何一个,这就是为什么您收到无法识别的选择器消息的原因。你必须自己实现它们。 你应该熟悉 Table View Programming Guide 了解如何有效地使用表视图。 最好的问候。 更新:这里有一些代码可以帮助您。在rootviewcontroller中,用-viewdidload中的alloc/init实例化nsarray。称之为项目:
然后像这样实现表视图的数据源委托:
然后需要实现cellForRowatindexPath:
此代码假定NSarray中的对象是NSDictionary。如果正在使用某个自定义对象,请将该索引路径处的对象强制转换为自定义类型,然后使用它的字段。 当有新数据可用并且需要重新加载表视图时,只需重新分配项nsarray,然后在表视图上调用reload data。假设您有这样的重新加载:
这将导致表视图查询其视图控制器,以获取要显示的行数以及通过访问NSARRAY的计数和内容而再次提供的每行的单元格。 Hth. |
![]() |
2
0
我猜您的数据是在getdata方法中异步加载的(如果您不是,您应该是),它在用户界面最不期望的时候更新/使对数据源的引用无效,当用户界面试图用指向其数据的过时指针呈现数据时,会导致崩溃。 只需确保从不从其他线程修改TableControllersData的内容。 或者你想使用coredata,在这种情况下,我不知道。 |
![]() |
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 6 月前 |
![]() |
routern · 如何组合contextMenu和圆角矩形? 6 月前 |
![]() |
DevHome98 · 3D触摸不适用于设备swift 1 年前 |
![]() |
dunoiww · 从全屏返回时如何触发onAppear 1 年前 |
![]() |
Community wiki · iPhone上ivar的继承问题 1 年前 |
![]() |
Community wiki · 查找iOS日历 1 年前 |
![]() |
Community wiki · 有效的IPhone编程技术[关闭] 1 年前 |