【问题标题】:Getting to know NSHTTPCookieStorage's internals了解 NSHTTPCookieStorage 的内部结构
【发布时间】:2015-03-20 11:13:19
【问题描述】:

我正在尝试了解 NSHTTPCookieStorage 的内部结构,以便能够调整一些方法以从 Safari 的 cookie 存储中获得单独的存储,据我所知,这是任何非 hacky 方式都不可能实现的:

我在这里找到了头文件:

/System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSHTTPCookieStorage.h

这并没有给我太多信息,只是实现可能应该在

/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation

我查看了那个库中的符号名称,但我只发现这些提到 NSHTTPCookieStorage:

$ nm /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation | grep -i cookiestorage
000000000030cbb5 S $ld$add$os10.5$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbb6 S $ld$add$os10.5$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbb7 S $ld$add$os10.6$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbb8 S $ld$add$os10.6$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbb9 S $ld$add$os10.7$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbba S $ld$add$os10.7$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbbb S $ld$add$os10.8$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbbc S $ld$add$os10.8$_OBJC_METACLASS_$_NSHTTPCookieStorage
000000000030cbbd S $ld$add$os10.9$_OBJC_CLASS_$_NSHTTPCookieStorage
000000000030cbbe S $ld$add$os10.9$_OBJC_METACLASS_$_NSHTTPCookieStorage
                 I _OBJC_CLASS_$_NSHTTPCookieStorage (indirect for _OBJC_CLASS_$_NSHTTPCookieStorage)
                 U _OBJC_CLASS_$_NSHTTPCookieStorage
                 I _OBJC_METACLASS_$_NSHTTPCookieStorage (indirect for _OBJC_METACLASS_$_NSHTTPCookieStorage)
                 U _OBJC_METACLASS_$_NSHTTPCookieStorage

根本没有方法。对该库进行类转储,这是我能找到的所有提到的“Cookie”:

# class-dump /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation | grep -i cookie
@interface NSHTTPCookie (NSHTTPCookiePortCoding)

事情开始变得有些绝望,所以我调用了字符串!

$ strings /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation | grep -i cookie
setHTTPShouldHandleCookies:
NSHTTPCookiePortCoding

使用方法调配,我在NSHTTPCookieStoragesharedHTTPCookieStorage 周围包装了一个方法,然后我尝试使用 XCode 调试器输入它,看看我是否至少可以得到该方法的程序集,但 XCode 会跳转即使我告诉它进入,也可以直接调用该类的方法。

看起来这个班级甚至都不在那里。该类在哪里定义?我怎样才能进入它的内部?

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    NSHTTPCookieStorage 类在 CFNetwork.framework 中定义。

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 1970-01-01
      • 2010-09-21
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      相关资源
      最近更新 更多