iOS 错误 [UIWebView paste:]: unrecognized selector sent to instance

【Python・统计学】(两)多因素方差分析(原理及代码) 自学笔记,分享给对统计学原理不太清楚但需要在论文中用到的小伙伴,欢迎大佬们补充或绕道。ps:本文不涉及公式讲解(文科生小白友好体质)~(部分定义等来源于知乎) 本文重点:多因素方差分析 【1.多因素方差分析简单原理】 【2.多因素方差分析步骤】 【3.多因素方差分析代码】 阅读详情

出现控件:目前只在UIWebView中出现 切记!!!

那在什么场景中会出现这种情况呢?

如果一个包含文字的输入元素有焦点,然后按钮的点击会导致输入失去焦点,然后接下来在输入时双按会重新得到焦点并从弹出bar中选择剪切复制粘贴,就会导致此error。

也就是说当WebView页面中的HTML中有如下代码的时候

<input type="text">
<input type="button" >

即有输入框和按钮的时候,会出现 [UIWebView cut:]: unrecognized selector sent to instance 的错误风险

简单的说就是若有一个WebView中有输入框,又有按钮的话,执行下面的操作就会出现这样的错误:

1.在输入框中输入内容。

2.点击Button让键盘消失。

3。双击输入框中的内容出现选择的bar后点击剪贴。就会出现闪退的现象。

的具体错误如下:

2015-11-20 11:20:59.495 WebViewCutErrorDemo[3381:595295] -[UIWebView cut:]: unrecognized selector sent to instance 0x7f9612f19f40
2015-11-20 11:20:59.497 WebViewCutErrorDemo[3381:595295] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWebView cut:]: unrecognized selector sent to instance 0x7f9612f19f40'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010ddb6f45 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x000000010d82edeb objc_exception_throw + 48
    2   CoreFoundation                      0x000000010ddbf56d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x000000010dd0ceea ___forwarding___ + 970
    4   CoreFoundation                      0x000000010dd0ca98 _CF_forwarding_prep_0 + 120
    5   UIKit                               0x000000010e6a3923 -[UICalloutBar buttonPressed:] + 414
    6   UIKit                               0x000000010e6a1e47 -[UICalloutBarButton fadeAndSendAction] + 81
    7   Foundation                          0x000000010d416c39 __NSFireDelayedPerform + 402
    8   CoreFoundation                      0x000000010dd17264 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
    9   CoreFoundation                      0x000000010dd16e11 __CFRunLoopDoTimer + 1089
    10  CoreFoundation                      0x000000010dcd8821 __CFRunLoopRun + 1937
    11  CoreFoundation                      0x000000010dcd7e08 CFRunLoopRunSpecific + 488
    12  GraphicsServices                    0x000000011158fad2 GSEventRunModal + 161
    13  UIKit                               0x000000010e16430d UIApplicationMain + 171
    14  WebViewCutErrorDemo                 0x000000010d32c86f main + 111
    15  libdyld.dylib                       0x00000001104f292d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

仔细想想第三方登录的页面有出现这种问题的风险。

有人说这里面说是苹果系统的bug,原因是这种操作在响应链不能正确的发送,并最终发送到UIWebView的实例,而不是内部的UIWebDocumentView。

下面提供一下这种问题的解决方案,思想就是动态的为UIWebView添加响应的方法。

新建一个类 FixedWebView 继承 UIWebView

FixedWebView.h代码如下

//
//  FixedWebView.h
//  webView
//
//  Created by zzg on 2018/12/20.
//  Copyright © 2018年 zzg. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface FixedWebView : UIWebView

@end

FixedWebView.m代码如下

//
//  FixedWebView.m
//  webView
//
//  Created by zzg on 2018/12/20.
//  Copyright © 2018年 zzg. All rights reserved.
//

#import "FixedWebView.h"
#import <objc/runtime.h>

@implementation FixedWebView
- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        /// 适配防止崩溃
        [self prepareForNoCrashes];
    }
    return self;
}

- (UIView *)internalView
{
    static const char internalViewKey = '\0';
    /// 动态关联
    UIView *internalView = objc_getAssociatedObject(self, &internalViewKey);
    if (internalView == nil && self.subviews.count > 0) {
        for (UIView *view in self.scrollView.subviews) {
            if ([[view.class description] hasPrefix:@"UIWeb"]) {
                internalView = view;
                objc_setAssociatedObject(self, &internalView, view, OBJC_ASSOCIATION_ASSIGN);
                break;
            }
        }
    }
    return internalView;
}

void webViewImplementUIResponderStandardEditActions(id self, SEL selector, id param)
{
    /// IMP本质就是函数指针 methodForSelector 获得一个指向方法实现的指针,并可以使用该指针直接调用方法实现
    IMP imp = [[self internalView] methodForSelector:selector];
    
    /// 函数指针
    void (*method)(id, SEL, id) = (void (*) (id, SEL, id))imp;
    
    /// 直接用函数指针调用方法
    method([self internalView], selector, param);
    
}

- (void)prepareForNoCrashes
{
    NSArray *selectors = @[@"cut:", @"copy:", @"paste:", @"select:", @"selectAll:", @"delete:", @"makeTextWritingDirectionLeftToRight:", @"makeTextWritingDirectionRightToLeft:", @"toggleBoldface:", @"toggleItalics:", @"toggleUnderline:", @"increaseSize:", @"decreaseSize:"];
    
    for (NSString *selName in selectors) {
        
        /// 动态的根据方法名来获取方法
        SEL selector = NSSelectorFromString(selName);
        
        /// 若父类没有实现则给父类添加selector方法,若父类实现了,并不修改父类的selector方法
        class_addMethod(self.class, selector, (IMP)webViewImplementUIResponderStandardEditActions, "");
    }
}

@end

有些地方说的不到位,还请各位看官指正。。。



作者:洲洲哥
链接:https://www.jianshu.com/p/fbdda2e89070
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

从零开始:用ADS仿真设计一个2.4GHz Wi-Fi低噪声放大器(含完整电路图) 本文提供了一份详细的ADS软件仿真指南,手把手教你从零开始设计一个2.4GHz Wi-Fi低噪声放大器。内容涵盖核心指标理解、晶体管选型与建模、匹配网络设计、偏置电路集成,并通过S参数仿真、噪声优化及线性度验证等步骤,最终呈现完整的优化电路图,助力射频初学者掌握LNA设计全流程。 阅读详情

相关推荐

【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose

【时序列】时序列数据如何一步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose 在做时序列分析的时候,好多教程都告诉你要把时序列分解成趋势,季节性,残差,然后画图看一下有没有趋势变化,有没有季节性。像这样: import statsmodels.api as sm decomposition = sm.tsa.seasonal_decompose(train['Count'] ,model='add

weixin_47442572的博客 2万+

-[UIImageView _isResizable]: unrecognized selector sent to instance

检查storyboard或者xib中对象的连接是否

izyhuang的专栏 1697

DeepSeek研发的精算大模型「精卫」已实现98%精算任务覆盖,中国人寿采用后年节约3.2亿元技术采购成本,形成关键技术替代效应

根据现有资料,精算领域关键技术替代效应的行业标准定义尚未明确具体提及。然而,可以从相关文献中提取一些关键概念和方法来推导出可能的定义。​替代效应的基本定义​:替代效应是指一种商品价格变动引起另一种商品的相对价格变动,从而导致消费者在维持原有效用水平不变的条件下对商品需求量做出的调整。​技术替代效应​:在精算领域,技术替代效应可以理解为新技术或新方法对现有技术或方法的替代,从而影响精算模型、数据处理和决策过程。例如,机器学习在精算中的应用日益增长,改变了精算师的工作方式和模型构建方法。​。

百态·数智思维 | 聚焦大数据、量化与未来AI 1710

unrecognized selector sent to instance 0x7fe590d11d40'

问题描述: 本文中IOS项目使用了CocoaPods管理第三方库。为了将项目打包为.framework,另外单独建立了一个Cocoa Touch Framework静态库项目,并成功将项目打包为.framework,具体的如何将使用了CocoaPods管理第三方库的项目打包为.framework,可以参考文章《将使用了CocoaPods的IOS项目打包为Framework+打包后的测试+Pref...

我爱编程持之以恒 1万+

时空图神经网络实战:T-GCN在交通流量预测中的深度解析

本文深度解析了时空图神经网络T-GCN在交通流量预测中的实战应用。通过结合图卷积网络(GCN)和门控循环单元(GRU),T-GCN有效捕捉交通数据的时空依赖性,相比传统方法降低30%以上预测误差。文章详细介绍了T-GCN的核心技术、工程实践和优化策略,为智能交通系统提供有力工具。

weixin_29038537的博客 267

SAP BO系统启用邮件发送功能

目录 背景 维护邮件目标 启用邮件功能 背景 为了将BO报表或BO预警信息发送给特定的收件人,需要启用SAP BO系统的邮件发送功能。 维护邮件目标 1. 登录BO系统的中央管理控制台(CMC): http://<bo server name>:<port>/BOE/CMC 2. 点击“Organize”底下的“Servers”按钮进入BO服务器界面: 3. 点击“Servers List”进入服务器列表界面,右键点击JobServer&lt.

guowenming001的博客 1962

unrecognized selector sent to instance出现的原因和解决方案

造成unrecognized selector sent to instance iphone,大部分情况下是因为对象被提前release了,在你心里不希望他release的情况下,指针还在,对象已经不在了。 很多时候,是因为init初始化函数中,对属性赋值没有使用self.foo赋值,而是直接对foo赋值,导致属性对象没有retain(心里以为retain了),而提前释放。

FIGHTING的专栏 2万+

【即插即用模块】Transformer篇 | CVPR 2025 | D2T:双域特征融合,完美适配缺陷检测/小目标检测和分割等频域细节敏感的任务!

本文提出了一种基于小波和原型增强的双域Transformer(WPFormer)用于像素级表面缺陷检测。该模型通过Dual-domain Transformer (D2T)模块融合频域和空间域特征:小波增强交叉注意力(WCA)分解高低频特征并加权平衡,增强缺陷细节捕捉;原型引导注意力(PCA)生成全局原型向量强化关键信息聚合。实验表明,该模块在缺陷检测任务中性能优于现有方法,通过频域细节增强和全局依赖建模有效提升了复杂场景下的检测效果。代码已开源,适用于对频域敏感的目标检测和分割任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1374

ios开发之--unrecognized selector sent to class 问题解决

这个问题是指找不到文件或者方法,排除路径问题(路径问题这里不再细说),添加文件的时候明明已经add to targets了, 但是进去项目中,查看.m文件,文件中不能运行代码的文件就是缺少了这个,对比项目中的其他文件,仅仅是缺少这个勾选 于是勾选target membership,果然编译运行都好了,如下图: ...

明耀的博客 2434

基于YOLOv8深度学习的火焰与烟雾检测系统详解:UI界面 + YOLOv8 + 数据集的实现

通过自动化检测火焰和烟雾,可以提高响应速度,减少潜在的火灾损失,保障人身和财产安全。此外,应用还会显示标记了检测框的视频画面,方便用户直观了解检测效果。同时,前端界面将使用Streamlit来实现,因其可以快速搭建交互式应用,适合我们的需求。要训练一个有效的火焰和烟雾检测模型,我们需要一个包含火焰和烟雾图片的数据集。为了保证模型的准确性和泛化能力,建议收集至少500张火焰和烟雾的图片,保证数据的多样性和代表性。训练过程中,模型会输出每个Epoch的训练损失和验证准确率,便于我们监控模型的学习情况。

YOLO 1321

Open3D (C++)球旋转算法(BPA)三维建模

球旋转算法用于点云三维建模的C++代码实现。

点云侠的博客 1771

【iOS】unrecognized selector sent to instance出现的原因和解决方案

【iOS】unrecognized selector sent to instance出现的原因和解决方案 博客分类: Objective-C Objective-Cios  概述:造成unrecognized selector sent to instance iphone,大部分情况下是因为对象被提前release了,在你心里不希望他release的情况下,指针还在,对象已

yuyezhulan的专栏 1万+

深入解读WT软件湍流强度计算与分析

深入解读WT软件湍流强度计算与分析

weixin_46713695的博客 1021

iOS unrecognized selector sent to instance出现的原因~解决方法

联系人:石虎 QQ:1224614774昵称:嗡嘛呢叭咪哄 QQ群:807236138群称:iOS 技术交流学习群 一、概念 报unrecognized selector sent to instance是指针在,对象提前释放了 二、可能原因: 1.团队开...

石虎 7250

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

iOS开发之unrecognized selector sent to instance错误

最近今天在编写一个学习系统ios版本,遇到了unrecognized selector sent to instance 0x7fe0f314de10 类似这样的错误。 我这个程序的大体意思是一个viewcontroller A中需要包含另外一个viewcontroller B或者自定义的viewB,这样可以在A中定义一个B属性。定义之后按常理,在a中获得b属性,直接赋值就可以了,但是却会抛出上面的

Kevin's zone 5184

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

IOS:unrecognized selector sent to instance

1.上问题,遇到第一个ios问题,设置断点之后出现unrecognized selector sent to instance,crash! 一个来自storyboard的button按钮,name为enterPressed,arguments值为none 模拟器中每次此button处crashs 2.问题已解决,对于我着刚入门的ios的小白来说,问题让我有点不知所措,下面分享填坑过...

finger__的博客 417

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Solve Error: 'NSInvalidArgumentException', reason: '-[UITableView mas_makeConstraints:]: unrecognize...

  下面是iOS开发用第三方库可能出现的错误,及其解决方法: 1. 'NSInvalidArgumentException', reason: '-[UITableView mas_makeConstraints:]: unrecognized selector sent to instance 0x7fa5c402fa00' 这个是使用Masonry库时遇到的,Masonry库是做Auto...

weixin_34419326的博客 713

使用Masonry报unrecognized selector sent to instance的错

问题的来源:       现在我公司有两个项目,A项目(使用xcode的版本比较旧),B项目(使用最新的xcode版本);       B项目是使用cocoaPods管理第三方库,并加了一些第三方库。A项目没有。       现在要更新A项目,A和B项目有部分相似的界面,于是我把B项目的部分代码移植到A项目,并且给A项目添加Pod来管理第三方库。       于是这里在使用Masonry事

首字母大写-博客 6503

出现“unrecognized selector sent to instance”问题原因之一及解决方法。

  对于iPhone开发初学者来说,很想实现自己在iPhone上的第一个小程序,准备工作就绪侯就信心满满的开始了!一般来说大家可能都是从Hello World做起吧。反正我是的,:),如果按照文档上的说明去做,一般也不会出现什么问题。也建议初学者这样开始,毕竟会增强我们自己的信心。 但是当我们自己独立去做一个Button实现响应事件的小程序的时候,有时候确给我们出现了一

henry_qi的专栏 6万+

iOS开发 解决无法识别framework中分类(类别拓展)方法(unrecognized selector sent to instance)的问题

使用https://blog.youkuaiyun.com/sinat_31177681/article/details/105862591里面的方法,检索了framework中的链接文件,发现是存在分类方法的签名的,可是实际运行的时候却报错 解决方法是在Xcode Project的Build Settings下Other Linker Flags里面加入-ObjC标志。 之所以使用该标志,和Objective-C的一个重要特性:类别(category)有关。根据这里的解释,Unix的标准静态库实现和Objecti

酸柠檬的博客 2722

一文读懂iOS中的Crash捕获、分析以及防治

对于iOS端开发,定位和解决Crash毕竟两个流程,首先是根据线索来分析和定位问题,得到一个大概的猜想,之后按照自己的猜想去提供外部条件,来尝试复现问题,如果问题能够成功复现并复原与线程问题相似的堆栈现场,则基本完成了90%的工作,剩下的10%才是修复此问题。对于crash比例极低的,例如没有版本相关性的,对我们的应用影响极小的,我们可以通过去做AB实验尝试去修复。2.bad_access的排查途径有哪些?3.什么情况下会产生bad_access?

黑码哥的技术博客 2万+

unrecognized selector sent to instance 0x266070

unrecognized selector sent to instance 字面上翻译:给实体对象发送了不认识的消息。 遇到这个问题: 大概有如下两个原因: 1.对象过早的释放掉了,你引用的对象不存在。不能想空对象发送特定的方法(不是全部,因为release等特殊方法,例外)。 2.该对象没有这个方法,检查一下方法参数跟调用该方法时参数是否匹配(切记粗心大意)。

一个程序猿的故事 4万+

出现“unrecognized selector sent to instance”问题原因之一及解决方法

<br />对于iPhone开发初学者来说,很想实现自己在iPhone上的第一个小程序,准备工作就绪侯就信心满满的开始了!一般来说大家可能都是从Hello World做起吧。 <br /> 反正我是的,:),如果按照文档上的说明去做,一般也不会出现什么问题。也建议初学者这样开始,毕竟会增强我们自己的信心。 <br />     但是当我们自己独立去做一个Button实现响应事件的小程序的时候,有时候确给我们出现了一点点小问题。也就是我题目所说的。下边我就列出出现此问题的 <br /> 错误代码以及解决

imac_bmw的专栏 478
上一篇: charles重定向请求map
下一篇: iOS13 适配
runtime666
博客等级 码龄10年 41粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值