使用 NSURLConnection 的自定义子类,它稍后如何“找到”类中的附加数据?

2024-01-05

这个博客提供了一个很好的解决方案来处理多个 NSURLConnections:创建一个自定义的“CustomURLConnection”类,它有一个额外的tag财产。

http://blog.emmerinc.be/index.php/2009/03/02/custom-nsurlconnection-class-with-tag/ http://blog.emmerinc.be/index.php/2009/03/02/custom-nsurlconnection-class-with-tag/

http://blog.emmerinc.be/index.php/2009/03/15/multiple-async-nsurlconnections-example/ http://blog.emmerinc.be/index.php/2009/03/15/multiple-async-nsurlconnections-example/

基本上,他只是添加了一个tag现有 NSURLConnection 的属性:

自定义URLConnection.m

- (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately tag:(NSString*)tag {
   self = [super initWithRequest:request delegate:delegate startImmediately:startImmediately];

   if (self) {
      self.tag = tag;
   }
   return self;
}

然后,稍后在正常的 NSURLConnection 加载方法中,您可以执行以下操作:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

   //Log the connection’s tag
   CustomURLConnection *ttttag = (CustomURLConnection *)connection; // **HERE**
   NSLog(@”%@”, ttttag.tag);


   NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection];
   [connection release];
}

所以,这就是我遇到麻烦的地方。在我看来,事情是这样的:

  • 我创建了一个“连接+标签”
  • 我上面发布的第一个代码片段创建了一个常规的“连接”(没有tag),最终会调用普通的 NSURLConnection 方法,例如connectionDidFinishLoading。会发生什么tag在此刻?
  • In the connectionDidFinishLoading方法我能够将连接转换回“连接+标签”,然后找到已被丢弃的丢失标签信息。如何?

也许我只是让自己感到困惑,但似乎tag正常启动时被丢弃NSURLConnection小路。但然后通过将其转换为子类,我再次能够恢复tag财产。同时它住在/去哪里?

对继承有更好了解的人可以向我解释一下吗?


有了这个代码:

[[CustomURLConnection alloc] initWithRequest:... delegate:... startImmediately:... startImmediately tag:...];

你创建一个实例CustomURLConnection。现在你的理解是错误的:这CustomURLConnection对象可以自由调用其超类的所有方法,但它始终保持为CustomURLConnection. The tag总是在那里。

超类中定义的方法,例如initWithRequest:delegate:startImmediately:不知道标签,但他们也不必知道。当委托方法被调用时:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

the connection论点是非常一样 CustomURLConnection您在上面创建了自己。方法签名中的类型不同,但这并不重要;因为你知道这个连接是CustomURLConnection类型,你可以直接投射connection对象正确的类型并访问新属性。但即使你不这样做,tag仍然会一直在那里。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NSURLConnection 的自定义子类,它稍后如何“找到”类中的附加数据? 的相关文章

  • NSMenu 未调用 validateMenuItem 或 menuWillOpen

    我的 Mac 应用程序有一个 NSMenu 其委托功能validateMenuItem and menuWillOpen从来没有被调用过 到目前为止 网上的解决方案都没有帮助 看来我做的一切都是对的 菜单项的选择器属于同一类 管理它的类继承
  • UITextField:键盘出现时移动视图

    我目前正在开发一个具有单个视图的 iPhone 应用程序 该应用程序有多个 UITextFields 用于输入 当键盘显示时 它会覆盖底部的文本字段 所以我添加了相应的textFieldDidBeginEditing 方法 将视图向上移动
  • 在ios键盘上方显示建议工具栏

    我是iOS开发的新手 我正在尝试在 ios 5 1 中创建一个具有 textView 的拼写建议类型应用程序 这样如果用户点击键盘的某个键 则建议工具栏会出现在键盘顶部 其中包含所有建议 并且如果用户点击这些建议之一它将显示在 textVi
  • kCVPixelFormatType_420YpCbCr8BiPlanarFullRange 帧到 UIImage 转换

    我有一个应用程序可以捕获 kCVPixelFormatType 420YpCbCr8BiPlanarFullRange 格式的实时视频来处理 Y 通道 根据苹果的文档 kCVPixelFormatType 420YpCbCr8BiPlana
  • 有没有办法直观地看到精灵套件的 SKPhysicsbody 边界线?

    我在用bodyWithPolygonFromPath定义物理体的体积 我使用http dazchong com spritekit http dazchong com spritekit 获取所需的路径 但路径似乎不正确 我希望查看物理体路
  • Siri - 联系人搜索行为类似于 Skype 的音频通话

    我正在实现一个 VoIP 应用程序 我需要通过 Siri 发起呼叫 我能够通过 Siri 发起呼叫 但问题是 每次启动应用程序时 尽管联系人不在应用程序的联系人列表中 我不知道如何以及在哪里处理这个问题 我的意思是 如果应用程序没有像 Sk
  • 使用 UIControl (特别是 UIButton)时如何对目标进行排序?

    在我的应用程序中我有多个UIButtons我为此添加了目标 事实证明 首先执行最近添加的目标 然后执行其余的目标 例如 采用以下代码 button addTarget self action selector someAction forC
  • CSS - 让div继承高度

    我正在尝试制作一个带有圆角的盒子 其中 div 的高度和宽度取决于内容 因此它会自动调整 您可以在此处查看示例 http pastehtml com view 1duizyf html http pastehtml com view 1du
  • iOS7上UITableViewCell显示白色背景且无法修改

    我已经实现了一个继承自的自定义表格视图单元格类UITableViewCell 表格视图包含背景图像 所以我希望单元格的背景是透明的 iOS7之前看起来很棒 然而 在 iOS7 中 单元格始终显示为白色背景 即使对于 Xcode7 2015
  • iCloud Drive 内用户选择的文件夹内的垃圾文件

    我的应用程序可在任何用户选择的文件夹内处理用户 txt 文件 创建 更改 删 除 我只是在内部存储书签以访问用户选择的文件夹和文件 现在 在 macOS Catalina 中 当源文件夹位于 iCloud Drive 内时 系统仍然允许我创
  • 除了可访问性之外,访问说明符还有什么作用?

    除了对派生类可见或不可见的正常解释之外 它们还有其他区别吗 如果你让它更明显 它会占用更多或更少的内存 它会减慢速度还是 除了外部成员或派生类成员的可访问性之外 访问说明符还可能影响对象布局 引用自我的其他答案 https stackove
  • Objective-C 内存管理:发布时崩溃

    我是 Objective C 的新手 似乎无法正确理解内存管理代码 我有以下代码 Media myMedia self myMediaManager getNextMedia self navigationItem title self m
  • 无法将 NSMutableDictionary 发送到另一个类

    All 我试图将 NSMutableDictionary 响应 发送到我的另一个类 或者更确切地说 让另一个类从这个类中提取字典 当另一个类使用 getResponse 方法时 它返回 null 我附加的代码是我的 XML 解析器 它将我需
  • 在后台线程上搜索

    我试图在 iPhone 应用程序中搜索数千个对象 但是搜索严重滞后 每次击键后 UI 都会冻结 1 2 秒 为了防止这种情况 我必须在后台线程上执行搜索 我想知道是否有人有一些在后台线程上搜索的提示 我读了一点NSOperation并在网上
  • UITableView 在单元格刷新时滚动到顶部

    我有一个 UITableView 其中一个单元格的大小是动态调整的 以适应其中的 UITextView 每当键入一个键时 单元格都会检查计算出的高度是否增加 就像换行符一样 因此它可以告诉表单元格的高度需要重新计算 我用这段代码做到了这一点
  • 符号化 iPad 崩溃日志后回溯仍然不可读

    我有这些崩溃日志 在我将它们放入管理器中后 会自动进行符号化 但结果始终相同 iOS 调用得到符号化 而我的应用程序调用则没有 我尝试将 Dym 和应用程序文件复制到同一文件夹中 删除并再次复制回来 没有任何帮助 知道发生了什么事吗 所以我
  • 访问由 std::shared_ptr 包装的类的运算符重载

    我的想法是我想要一个由以下内容包裹的类std shared ptr 仍然可以使用 就像它们不是指针一样 例如在我的类中定义的operator 我的课程结束后仍然可以使用std shared ptr 例如 template
  • NSString 对象的最大长度是多少?

    NSString 对象中可以保存的最大字符串大小是多少 这会动态变化吗 我假设 NSString 的硬限制是 NSUIntegerMax 个字符 因为 NSString 的索引和大小相关的方法返回 NSUInteger 由于当前能够运行 i
  • C#/.NET 3.5:转换扩展通用列表的对象

    我通过带有返回接口类型的方法的外观公开 API 并且在 C NET 3 5 中遇到了通用列表和继承的问题 我有两个接口 IMyList 实现 IList IMyItem 和三个类 MyList 实现 IMyList 扩展 List MyOt
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al

随机推荐

  • Clojure defrecord - 如何使用它?

    我正在尝试创建我自己的不可变数据类型 方法defrecord在 Clojure 中 目标是拥有一个可以创建实例的数据类型 然后调用其方法以返回其自身的新副本以及变异变量 假设 a 和 b 是向量 我想更新两者中的值 并返回整个结构的新副本
  • 近乎空的 Java For-Loop 行为很奇怪

    此代码按预期打印 平均运行次数 0 99864197 import java util Random public class A public static void main String args int min 30 int max
  • div 内的复选框。单击时使用 jquery 1.9.1 选中或取消选中

    您好 我想在单击带有文本的 div 时选中或取消选中复选框 使用jquery 1 9 1 这是 js fiddle 的链接 div class tel show div
  • 如何基于现有的docker-compose在testContainers中运行samba服务器

    我有以下docker 撰写本地开发文件 version 3 4 networks mynetwork services samba image instantlinux samba dc latest container name samb
  • X-Frame-Options:Firefox 和 Chrome 中的 ALLOW-FROM

    我正在实施 传递 X Frame Options让合作伙伴网站将我雇主的网站包装在 iframe 中 按照本文 http blogs msdn com b ieinternals archive 2010 03 30 combating c
  • 不同分类法中的 Drupal 术语可以同义吗?

    比方说 分类 A关联到节点 类型 A 分类 B关联到节点类型B AND Both 分类 A and 分类 B have a term称为 yellow 是否可以制定条款 yellow 同义 所以如果我正在查看 的列表yellow 的东西 我
  • 将 oracle 转储导入到 PostgreSQL

    我有一个纯文本而不是 oracle 二进制转储 我如何将其导入到 postgres 中 有可用的工具吗 或者还有其他的吗 以前有人这样做过吗 我的想法是将一个转储 oracle 转换为另一个转储 postgres 查看ETL工具 http
  • 无法在 Android Oreo 中创建目录(API 26)

    我已经阅读了 Android Oreo 的行为和更改的文档 我知道为 Android Oreo API 26 创建文件目录有不同的过程 Code File mediaStorageDir null if Build VERSION SDK
  • 如何获取带有特定注释的对象的所有字段和属性?

    如何获取使用特定注释进行注释的对象 非类 的所有字段和属性而不进行迭代all它的字段或属性描述符 我的目标是避免对显然没有注释的每个字段或属性进行不必要的迭代 例如 getClass 或不是实例的字段或成员变量的类的任何字段 或者迭代是唯一
  • 无法加载文件或程序集Antlr3.Runtime.dll

    我们使用 TeamCity 作为构建服务器 Net Framework 4 和 ASP NET MVC2 以及 NHibernate 由于最近 Amazon EC2 问题 我们的构建服务器最近离线了 我们正在设置一个新的构建服务器 然而 即
  • 具有 S3 位置的 Tensorboard

    我正在尝试使用 S3 路径tensorboard logdir命令并收到以下错误 tensorflow python framework errors impl UnimplementedError 文件系统方案 s3 未实现 文件 s3
  • 饼图标签被切断

    我正在制作饼图 一些标签被剪掉了 我想缩小情节以容纳所有标签 下面是一个可重现的示例 library plotly plot ly type pie values 1 19 labels c 101 119 textinfo label v
  • 如果表中没有索引,如何配置 NHibernate 映射到数组?

    我有一个现有的 POCO 类库 其中子集合全部存储在数组中 例如 Customer 类有一个 Invoice 数组来保存其发票 class Customer public int ID public Invoice invoices cla
  • 整数宽度与位域声明相关吗?

    我试图找到一个不应该写的理由 struct bitfield signed foo 4 unsigned bar 2 而不是详细指定 struct bitfield signed int foo 4 unsigned int bar 2 由
  • 实现抽象方法时更改参数类型

    是否有某种方法可以将抽象类型定义为抽象方法中的参数 并且当在派生类中实现该方法时 可以更改该方法的类型以接受派生类型 Code public abstract class ProductBase public class SomeProdu
  • 将类似 facebook 的按钮与动态加载的内容集成

    我正在开发的网站包含通过 AJAX 动态加载的项目列表 当您向下滚动页面时 会加载更多项目 现在 我的客户想要为每个项目添加一个类似 Facebook 的按钮 以及喜欢此按钮的人数 集成默认的点赞按钮没有问题 但是如何将点赞按钮添加到通过
  • PackageManager.getComponentEnabledSettings() 在冷启动之间是否持续存在?

    如果我使用下面的代码禁用 AndroidManifest xml 中定义的静态 BroadcastReceiver 它会在重新启动后重新启用吗 似乎不是 但文档没有说明是否应该 final ComponentName compName ne
  • 计算R中表格每一行的线性趋势线

    是否有可能在不使用循环的情况下对数据帧的每一行进行线性回归 趋势线的输出 截距 斜率 应作为新列添加到原始数据框中 为了更清楚地表达我的意图 我准备了一个非常小的数据示例 day1 lt c 1 3 1 day2 lt c 2 2 1 da
  • Python Scrapy 和 Yield

    我目前正在第一次使用 Scrapy 开发爬虫 也是第一次使用 Yield 我仍在努力思考产量问题 刮刀 抓取一页以获取日期列表 解析 使用这些日期来格式化 URL 然后抓取 parse page contents 在此页面上 它找到每个单独
  • 使用 NSURLConnection 的自定义子类,它稍后如何“找到”类中的附加数据?

    这个博客提供了一个很好的解决方案来处理多个 NSURLConnections 创建一个自定义的 CustomURLConnection 类 它有一个额外的tag财产 http blog emmerinc be index php 2009