首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我将UITableViewCell作为AnyObject传递时,我的应用程序崩溃了?添加到另一个函数

当将UITableViewCell作为AnyObject传递时,应用程序崩溃的原因可能是类型不匹配导致的。UITableViewCell是一个具体的类,而AnyObject是一个可以表示任意类的类型。在Swift中,当我们将一个具体类型的实例赋值给AnyObject时,编译器会自动进行类型转换。但是,如果我们将一个UITableViewCell实例赋值给AnyObject,并且在另一个函数中尝试使用它,可能会导致崩溃。

解决这个问题的方法是使用更具体的类型来传递UITableViewCell实例,而不是使用AnyObject。例如,如果你想在函数之间传递UITableViewCell实例,可以将参数类型声明为UITableViewCell而不是AnyObject。这样可以确保类型匹配,并避免崩溃。

示例代码:

代码语言:txt
复制
func processTableViewCell(cell: UITableViewCell) {
    // 处理传递过来的UITableViewCell实例
}

func anotherFunction() {
    let cell = UITableViewCell()
    processTableViewCell(cell: cell)
}

在上面的示例中,我们将UITableViewCell实例作为参数传递给processTableViewCell函数,而不是使用AnyObject。这样可以避免类型不匹配导致的崩溃。

关于UITableViewCell的更多信息,你可以参考腾讯云的文档和相关产品:

相关搜索:当我使用react路由重新加载具体页面时,我的应用程序崩溃了为什么当我将函数调用移动到另一个按钮时,我的ble应用程序会崩溃?为什么当我想在android studio中制作电影背景时,我的应用程序崩溃了?当我只是将函数的引用传递给addEventListener时,为什么我的函数正在执行?为什么当我把android:em的值放在dimens.xml中时,我的应用程序崩溃了?当我试图在我的设备上测试这款游戏时,我崩溃了“不幸的是,应用程序名称已停止当我试图在ListView中setOnClickListener一个按钮时,我的应用程序因为未知的原因崩溃了当我调用一个函数时,Numba崩溃,但如果我将函数中的内容放在外部,就不会崩溃当我使用opencv将图像的路径传递给显示函数时,我收到此错误我正在使用片段,当我非常快地按下后退按钮时,应用程序崩溃了。它是随机发生的当我想要从组合框中获取一个值并将其作为一个椭圆的笔画时,我的程序崩溃了当我把一个随机数生成器/猜测程序放入一个函数时,我的javascript代码崩溃了。为什么它会崩溃?当将函数作为参数传递给另一个函数时,如何指定输入函数的参数类型和返回类型?当我给出一个错误的POST请求时,我没有获得err属性。我的应用程序将崩溃,而不是提供err属性当我希望函数只在第一个条件为真时被调用时,将函数作为IF的第二个条件传递是否安全?在React Native中导航到另一个类时,有没有办法将变量作为我的类名进行传递?我正在开发一个测验应用程序。我想知道如何在不使用构造函数的情况下将分数变量传递给另一个页面我需要帮助将一个文件中定义的函数连接到另一个文件,以便当我运行此文件时,它可以显示前一个文件中定义的函数
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Swift 中 key paths 能力

前言 自从 swift 刚开始就被设计为是编译安全和静态类型后,它就缺少了那种么经常在运行时语言中动态特性,比如 Object-C, Ruby 和 JavaScript。...: UUID let source: URL let title: String let body: String } 每当我们使用这些模型数组,希望从每个型号中提取一个数据来形成一个新数组...既然所有上面我们做事情都是获取传递给我们闭包值,并将它赋值给视图控制器中属性 - 那么如果我们真的能够属性 setter 作为函数传递,会不会很酷呢?...这样我们就可以直接函数作为完成闭包传递给我们加载方法,然后所有的事情都会正常执行。 为了实现这一目标,首先我们先定义一个函数,让任意可写转化为一个闭包,然后为关键路径设置属性值。...给定一个对象,以及给这个对象设置关键路径,我们将会自动捕获对象作为弱引用类型,一旦我们函数被调用,我们就会给匹配关键路径属性赋值。

1.6K10

Swift 中 key paths 能力

自从swift刚开始就被设计为是编译安全和静态类型后,它就缺少了那种么经常在运行时语言中动态特性,比如Object-C, Ruby和JavaScript。...let source: URL let title: String let body: String } 每当我们使用这些模型数组,希望从每个型号中提取一个数据来形成一个新数组...既然所有上面我们做事情都是获取传递给我们闭包值,并将它赋值给视图控制器中属性 - 那么如果我们真的能够属性setter作为函数传递,会不会很酷呢?...这样我们就可以直接函数作为完成闭包传递给我们加载方法,然后所有的事情都会正常执行。 为了实现这一目标,首先我们先定义一个函数,让任意可写转化为一个闭包,然后为关键路径设置属性值。...给定一个对象,以及给这个对象设置关键路径,我们将会自动捕获对象作为弱引用类型,一旦我们函数被调用,我们就会给匹配关键路径属性赋值。

2.5K20
  • 【iOS 开发】tableView updates 对比 reloadData

    Paste_Image.png 如图有一个 TableView,每行显示这一行是第几行,现在希望每按一次 update 按钮,就动态地在下方加两行。...这里 beginUpdates 和 endUpdates 方法作用是,这两条语句之间对 tableView insert/delete 操作聚合起来,然后同时更新 UI。...只会为新增cell调用这个方法 cellForRow 方法调用时间: reloadData 会在 numberOfRows 方法调用后某一间异步调用 cellForRow 方法,updates...cellForRow 方法,可能导致显示结果与数据源不一致;需要手动保证 insertRows、deleteRows 之后,row 数量与 numberOfRows 结果一致,否则会运行时崩溃 -...--- 部分文章中没有写,总结提到了部分放在完整 demo 里面:demo Github 地址

    1.8K30

    使用流动控制器(Flow Controller )实现 MVVM 协议模型

    另一个例子是抽象相似界面,如网格和列表使用相同 ViewModel 。抽象必然会更复杂些,但当你应用程序增长或者随着时间变化,你收益也会越来越多。...,举例证明初步结果。...挑战 挑战第一阶段是很简单作为一个项目列表显示他们,并选择一个显示细节。相信,这是开发应用程序最常见任务。在这里是一个简单猫头鹰列表,有名称,照片和描述。...在本例中,只有数据和子单元变化,可以作为一个参数传递,并为所有列表创建一份可重用代码。 这里有趣一点是实现两种响应协议:一个用于网格和一个列表。但两个实现是相同。...目前仍在调查究竟是 Swift bug 还是故意限制。 得到结果是代码非常干净,并最大限度地提高接口重用。还研究泛型和协议作为一种抽象问题方法。其他结果是构建时间明显快得多。

    99440

    测试 View Controllers

    当我们运行这个测试,-testNothing 方法将会运行。特别地,STAssert宏将会做琐碎检查。注意,前缀 ST 源自于 SenTestingKit。...我们告诉 mock object 当它收到这个消息要做什么。首先创建一个 cell,然后设置 mock。...省略注入的如何工作细节(它本身是个巨大的话题),简单地说:注入是把待注入 bundle(我们测试 bundle)中 Objective-C 类添加到运行应用程序中。...还有一件事会很让人迷惑,那就是如果我们同时把一个类添加到应用程序和测试 bundle中。...如果在上面的示例程序中,我们(不小心)把 PhotoCell 类同时添加到测试 bundle 和应用程序里的话,在测试 bundle 中调用 [PhotoCell class]会返回一个不同指针(你应用程序那个类

    72920

    iOS 9 Storyboard 教程(二下)

    ,通过这个segue引用,可以传递到这个方法.它用来往玩家数组里添加新Player对象来作为数据源.然后它会告诉tableView添加了新一行(在底部),因为tableView和它数据源始终是同步...Game Picker控制器 在Add Player控制器里点一下Game那一行应该会打开一个新控制器,可以让用户从一个列表里选择游戏.也就意味着你将会添加另一个tableViewController...现在让我们给这个新控制器一些数据来显示吧.在GamePickerViewController.swift中,把一个具有硬编码值games字符串数组添加到顶部: var games:[String]...现在运行app测试一下吧.点击一个游戏名称,那一行就会显示一个对号.点击另一个游戏名称,标记就会随至移动到那一行. ?...仍然在PlayerDetailsViewController.swift,添加到prepareForSegue(_:sender:)末尾: if segue.identifier == "PickGame

    2.2K10

    动手写个 JSON-Model Mapping 库

    虽然用着还不错,但是它主要是为了避免手动解析 JSON 数据大量解包操作,降低解包不当导致 crash 风险,感觉主要是注重安全性,易用性方面还是差了点。...然而 Swift 反射实在是太弱,运行期只能查看属性却不能给属性赋值。...这简直无解,读了一下 SwiftyJSON 源码希望能找点灵感,然后发现 SwfityJSON 流程是这样(以直接解析 NSData 数据为例): 以一个 NSData 类型数据作为构造器参数实例化一个...,就调用另一个构造器,把这个对象赋值给实例属性 object ,否则就给object赋一个NSNull()。...object是一个计算属性,在给它赋值,会对它类型进行判断,然后把它类型信息存储到实例属性type中(type是一个自定义枚举类型,这个枚举类型基本对应 Swift 中几种基本类型),最后把

    1.2K30

    在iOS中怎样创建可展开Table View?(上)

    对于“Work Experience”组来说: Level:当顶级cell被点击打开时候,另一个带有滑块控件cell就出现,让用户指定一个假设工作经验.允许值在0...10这个范围之间,我们保持唯一整数值...在这一点上,我们通常会在我们工程中创建一个新plist文件,然后我们开始填充合适数据.当然你也可以不这么做,你可以下载.plist文件.所以,下载它并把它添加到起始项目里去吧.设置所有cell属性需要大量空间...接下来,让我们实现一个新自定义函数,负责从数组中加载文件内容.我们调用loadCellDescriptors()函数: func loadCellDescriptors() { if let...现在让我们实现这个新函数吧.你可能猜到了,我们通过所有的cell描述和我们在上面添加cell索引2D数组,把"可见"属性设置为YES.显然,我们需要处理一个嵌套循环,但是却不难处理.下面是这个函数实现...显示cell 了解了每次app运行时候cell描述符都会被加载,我们继续吧,在tableView上显示cell.这部分我们会开始创建另一个函数,这个函数将会从cellDescriptors数组定位和返回合适

    1.8K50

    Swift 书面 ToDo App

    大家好,又见面是全栈君。 下面的代码是使用全部Xcode Version 6.0.1 (6A317)书面。...作为基本ViewController,打开 Main.xib File’s Ownerl类属性改为 Main(这样才干够关联变量拖动到 Mian.swift )。...run 一下你就能够看到界面。 3、然后在Main.swift 中编写一下TableView 数据源和代理方法。这里我们用是 自己定义 Cell。...把你须要用到头文件统统写在里面,然后 Build Settings 中 Object-C Bridging Header 写入 .h 文件路径就可以。接着就能够正常使用 OC 写接口。...完整项目代码发在github上来。须要到这里拿。 版权声明:本文博客原创文章,博客,未经同意,不得转载。

    1.5K20

    【IOS开发基础系列】Storyboard专题

    与之对应是,故事板应用程序使用 UIMainStoryboardFile或者“Main storyboard file base name”键。它要求应用程序在启动需要加载故事板文件名。...也就是说,程序运行时,UIApplication 会将TabBarController作为应用程序第一个ViewController。...将该文件夹添加到项目中去。在TabBarItem “Guestures”属性面板, Players.png 设为它image。...如果是使用IB ,在 MainWindow.xib中会有应用程序委托一个引用,同时你可以顶层ViewController 连接到应用程序委托IBOutlet 属性。但现在使用故事板就不可能。...设置它Mode 为 Center(在属性面板 View 下面)以便当我图片放入时它不会被拉伸。         俩个 label 宽度设置为210,这样不会遮住ImageView。

    1.1K30

    优雅处理网络数据,你真的会吗?不如看看这篇.

    所以作为 iOS 开发者我们,在日常开发中,也早已不是处理显示零星数据这么简单,为了流量往往我们需要在 App 里显示大量有价值信息来吸引用户,如何优雅显示这些海量数据,考量就是你个人经验...image 如何实现 由于 Instagram UI 过于复杂,在这就不去模仿实现,但是模仿加载机制,同样实现一个简单数据无限滚动和无缝加载效果。...如何避免滚动的卡顿 当你遇到滚动卡顿应用程序时,通常是由于任务长时间运行阻碍 UI 在主线程上更新,想让主线程有空来响应这类更新事件,第一步就是要将消耗时间任务交给子线程去执行,避免在获取数据阻塞主线程...苹果提供很多为应用程序实现并发方式,例如 GCD,在这里对 Cell 上图片进行异步加载使用就是它。...图片缓存 虽然在上面对应用增加了并发操作,但是一看 Xcode 性能分析,不禁陷入了沉思,应用程序太吃内存,假如我不停刷,那我手机应该迟早会把应用给终止掉,下图是刷到 200

    1.4K20

    UI篇-UIResponder之事件传递和响应精析

    负责管理应用程序UIApplication单件对象事件从队列顶部取出,找到当前运行程序,典型情况下,它会将事件发送给应用程序键盘焦点窗口—即拥有当前用户事件焦点窗口,然后代表该窗口UIWindow...如果第一响应者没有进行处理,第一响应者事件处理事件责任传递给下一个,更高级对象,即当前responder对象nextResponder。...5.UIWindow对象事件传递给UIApplication单件对象。 6.如果应用程序找不到能够处理事件响应者对象,则丢弃该事件。 程序寻找能够处理事件对象,事件就在响应者链中向上传递。 ?...但是,大多数应用程序都不需要这样做。 在一定时间内关闭事件传递。...前一个方法使应用程序完全停止接收触摸事件消息,第二个方法则重启消息接收。某些时候,当您代码正在执行动画,可能希望关闭事件传递

    2.5K30

    类和函数傻傻分不清楚?三个例子讲明白

    什么时候该用类呢? 关于这个问题,算是困惑许多刚接触python同学,那么本文就尝试从多个角度来解读这个问题。首先还是先来看看官方给出类与函数解释。 类提供一种组合数据和功能方法。...该方法字段值作为参数,并将它们作为对象属性赋值。self是一个特殊参数(名称不保留;它可以被称为任何东西),它是对对象本身引用。是一种从同一对象其他方法内部访问属性和方法方法。...当我们从对象外部访问它们(要使用play方法执行此操作),则可以使用在该范围内为对象指定任何名称。...至于到底在何时使用类,我们来看看其他程序员理解 当我们拥有一堆共享状态函数,或者将相同参数传递给每个函数,我们可以重新考虑代码使用类。...类“可重用性”意味着我们可以在其他应用程序中重用之前代码。如果我们在自己文件中编写了类,则只需将其放在另一个项目中即可使其工作。

    1.1K20

    Foundation-NSCache

    介绍 NSCache 一个存储键-值对容器,和NSDictionary 很像,它可以设置存储键-值对最大数量 优点 1.NSCache 包含了回收策略,确保NSCache 不会使用太多系统内存...2.它是线程安全对象,你可以在其他线程增加,删除和查询Cahe 不需要加锁 3.不像NSMutableDictionary 对象,cache不会复值添加到它里面的对象 属性和方法介绍 缓存名称...,缓存中对象可能会被立刻移除,或者永远不会被移除,取决于缓存实现机制(也不太理解为什么这么搞) 持有最大缓存消耗数量 var totalCostLimit: Int { get set }...Optional(swift3_0.Dog) 执行了isContentDiscarded Optional(swift3_0.Dog) 执行了isContentDiscarded 第三步 缓存对象丢弃掉...Dog x.isDiscard = true 运行一下: 执行了isContentDiscarded 提示: 当我们调用一次或者多次属性和方法,isContentDiscarded() 会被执行一次

    69920

    Matplotlib 中文用户指南 3.6 图例指南

    ()函数返回轴域上存在句柄/艺术家列表,这些句柄/艺术家可以用于为结果图例生成条目 - 但值得注意是,并非所有艺术家都可以添加到图例中, 这种情况下会创建『代理』(请参阅特地为添加到图例创建艺术家...为了完全控制要添加到图例内容,通常将适当句柄直接传递给legend(): line_up, = plt.plot([1,2,3], label='Line 2') line_down, = plt.plot...([3,2,1], label='Line 1') plt.legend(handles=[line_up, line_down]) 在某些情况下,不可能设置句柄标签,因此可以标签列表传递给legend...() 图例处理器 为了创建图例条目,句柄作为参数提供给适当HandlerBase子类。...然后我们可以实例字典作为关键字handler_map传给legend。

    1.6K10

    编码篇-继承+通知看方法实现和delloc方法调用

    问题 点击进入UITableViewCell B中后返回,再进入到 UITableViewCell A中,触发通知A,此时会崩溃崩溃UITableViewCell B 方法B中,( 这里说一下...Paste_Image.png 如图所示:UITableViewCell A和UITableViewCell B关系和方法调用关系大致如此,崩溃原因是,由于 方法B和方法A是一样UITableViewCell...,也就是重写),而实际上 UITableViewCell B 中方法B设计上不是为 通知A服务,其中调用一些未知数据,所有就出现崩溃。...,导致控制器引用计数加1,如果没有这个NSTimer 销毁,它将一直保留该viewController,无法释放,也就不会调用dealloc方法。...A一些方法,但是UITableViewCell B方法列表中还是会有 那些方法,只是省去了书写而已,书写在父类文件中)而且没有被销毁,所以当UITableViewCell A 中通知A被触发

    81220

    iOS 架构组件:让你 TableView 优雅起来

    笔者做法是这个“中间类”抽象出来,作为两个协议:YBHTCellProtocol和YBHTCellModelProtocol,这两个协议包含了布局UITableView所需数据,当然可以结合自己业务扩充这两个协议...从另一个方面思考问题,从组件使用方法可知,UIViewController和id之间是有关联,而id与UITableViewCell...是有关联,所以可以通过idUIViewController传递UITableViewCell中,然后进行交互。...不过不管哪种方式来说都不太优雅,在业务开发中应该多考虑一下,UITableViewCell中会不会有大量事件需要传递到最外层业务,比如跳转界面、网络请求等就可以直接在UITableViewCell...在一开始笔者还满怀希望,觉得这个组件场景很大,后来发现有很多局限性。 组件总是会让粒度变大,当你追求更小粒度时候你会发现:去,好像这个组件没有意义?。

    1.8K40
    领券