使用通知传递字符串,然后传递给类

Posted

技术标签:

【中文标题】使用通知传递字符串,然后传递给类【英文标题】:Passing String with Notification and then pass to class 【发布时间】:2012-11-15 21:23:26 【问题描述】:

我有一个问题,我为 ipad 应用程序工作,在这个应用程序的主视图中,我有一个自定义 uitableviewcontroller 的实例,在行单击时,我发布了一个传递对象并运行方法的通知

- (void) drawWebView:(id) sender 

    NSDictionary *dict = [[sender userInfo] copy];
    self.objTesto = [dict objectForKey:@"Testo"];
    self.txtWeb = self.objTesto.testo;

    //[self setWebView:self.txtWeb];
    [self.textWebView loadRequest:[self creaFilehtml:text]];

当我在我的类的 webview 上设置加载请求时,如果我使用 setWebView 方法创建 uiwebview 的子类:使用简单的 NSLog()

[self setWebView:self.txtWeb];
//[self.textWebView loadRequest:[self creaFileHTML:text]];

我收到此错误:

由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[__NSCFString userInfo]: 无法识别的选择器发送到实例 0xee3a1e0'

【问题讨论】:

drawWebView:setWebView:是什么关系? (我还将 drawWebView:(id) sender 更改为 drawWebView:(NSNotification *) notification 以便您在编译时捕获类型错误。) 无相关性,drawWebView在主视图上,当主视图收到来自uitableviewcontroller的通知时运行此方法,setView是uiwebview子类的方法。 【参考方案1】:

要么错误的东西被作为参数传递,要么你有一个内存管理问题。你需要找出一个字符串是如何被要求提供它的userInfo的。

如果您更改参数声明并在您的方案中打开僵尸,应该清楚发生了什么。

【讨论】:

【参考方案2】:

问题是我启动了错误的类(我有两个类似的类)-愚蠢的错误-.-对不起!

【讨论】:

以上是关于使用通知传递字符串,然后传递给类的主要内容,如果未能解决你的问题,请参考以下文章

传递给类构造函数的 C++ 字符串 - 链接器错误

是啥导致 c++ std::string 变量在传递给类时给出冲突的定义

将 QXmlStreamReader 实例传递给类

将指针分配给指针(并将指针传递给类)时使用删除的 C++ 混淆

如何使用 CloudKit 的通知传递数据?

如何使用通知将字符串数据从 swift 传递到目标 c 类