日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

QQ浏览器HD的动态化方案QBDF的总体架构设计(2)【简书被冻结-搬运】

發布時間:2024/3/26 HTML 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QQ浏览器HD的动态化方案QBDF的总体架构设计(2)【简书被冻结-搬运】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原作時間:2019~2021年

此次共享,騰訊內網 / 外網同步發布。

內部代碼地址:https://git.code.oa.com/fatboyli/QBDF

外部代碼地址:GitHub - ventureli/QBDF

兩年前的一個混淆包(無源碼):GitHub - ventureli/VLOCInterpreter

作者:騰訊fatboyli(李文強)

1.最終形態預覽

上一篇文章我給大家介紹了QBDF這個框架的前世今生,整整四個版本的框架優化,大約耗時了3個月時間來搞定這件事。最終我們的QBDF的運行結構如下圖。

代碼結構運行圖

下面以QQ瀏覽器HD短視頻頁面的代碼來進行說明下。

QQ瀏覽器HD短視頻QBDF代碼

其中 最左側的就是我們QBDF的腳本,是不是看起來和OC一樣?對的,QBDF的目標下發OC 的.m 文件熱更新,當然是完全一樣的。

其中中間的部分就是我們生成的中間代碼,我們通過自己設計的12條指令,把OC代碼進行翻譯為指令數組,然后就可以用虛擬機取運行了。大家看到的中間代碼目前是JSON格式,沒有被壓縮的樣式。最右側的就是QBDF虛擬機對中間代碼執行的效果。目前QQ瀏覽器HD iOS版本大家還可以看得到這個短視頻頁面。這個頁面就是采用QBDF完成開發的。

2.QBDF架構

此章節主要簡單介紹下QBDF整體架構。

2.1.QBDF主要組成

整個QBDF主要氛圍兩部分。一個是解釋器,一個是虛擬機。兩者的分工主要如下。

解釋器

詞法分析

語法分析與語法制導翻譯

中間代碼生成

中間代碼混淆

虛擬機

虛擬機對接OC的四大驅動

運行上下文與過程調用解釋器(就是PC指針,JMP,JZ等定位和符號表出棧入棧等操作)

符號表

參數接口與返回值接口處理

通過上面的描述,其實我們可以直到,QBDF解釋器的部分并不一定要在客戶端完成,我們完全可以在其他的地方編譯好中間代碼,然后直接由客戶端的VM去解釋中間代碼就可以了。我在QBDF客戶端SDK的基礎上,我重寫了解釋器的部分,(客戶端用OC實現,云解釋器用C++實現)為什么不都用C++實現呢?確實都用C++實現比較好的。但是因為客戶端的SDK是先寫的,后來集成后不久我就離職了,所以一直沒有進行統一。所以整個QBDF的組成就是這個樣子。

QBDF 的整個組成。

2.2 QBDF和編譯原理

整個QBDF是一個解釋OC語言并運行的框架,它的設計就離不開編譯原理層面的東西,這里簡單介紹下。如果沒有興趣可以直接跳到下一章節從解釋器最開始的詞法解析去看。編譯原理的知識是非常復雜和難以理解的。我在做這個項目的時候也是基本都忘光了。重新找了一個母校的編譯原理課件重新學習了好幾周才明白。就是這個,為母校點個贊,非常的通俗易懂的課件。

哈工大編譯原理課件

我們直到對任何一個語言的編譯過程主要氛圍兩個部分,一個是前端,一個是后端,通俗來講,就是把前端的語言經過編譯器編譯成為可以在后端上運行的語言。

語言翻譯T形圖

我們實現QBDF是比較有意思,我們前端和后端都算是OC,同時實現語言也是OC,也就是說我們用OC語言實現了一個能把OC語言運行在OC上的程序。比較繞,但是確實是這個樣子,這個過程非常像編譯原理的自舉這個概念。為了快速實現整個框架,我們采用了最小化的設計,剔除掉了部分不重要的部分,同時利用了高級語言的特性。比如表達式解析這塊,加減乘除,三目表達式,自增,自減少,這種操作其實OC是有的,我們沒有必要像匯編那樣翻譯成基本指令,后面我會說到,其實整個表達式都是利用樹形結構進行處理的。下面是一個和一般編譯程序的對比圖對比圖:

QBDF和一般編譯程序的對比圖

可以看到我把代碼優化這個步驟去掉了,這個部分并不是必須的,因為我們的框架知識內部用于動態化開發,所以沒有必要完全按照一般編譯程序結構設計。代碼優化這個部分完全可以由程序員自己去保證。也就說下面的代碼QBDF是會真正執行1000次的,同時也會進行符號表的入棧和出棧操作。

for(int i=0;i<1000;i++){

//nothing

}

好了,以上就是QBDF的一個整體架構設計和實現思路,下面我們放一個QBDF的腳本和中間代碼大家感受下。

QBDF整個解釋器的總體技術設計是這個樣子的。

QBDF解釋器的技術組成

QBDF腳本如下。

@interface?qbdfsubCell : UIView

@end

@implementation?qbdfsubCell

- (id)initWithFrame:(CGRect)frame

{

? ??self= [superinitWithFrame:frame];

? ??if(self)

? ? {

? ? ? ? [selfsetBackgroundColor:[UIColor purpleColor]];

? ? ? ??idlabel = [[UILabel alloc] initWithFrame:CGRectMake(0,self.bounds.size.height -35,self.bounds.size.width,20)];

? ? ? ? label.font = [UIFont systemFontOfSize:20];

? ? ? ? label.textColor =[UIColor blackColor];

? ? ? ? label.text =@"短視頻A";

? ? ? ? [selfsetQBDFProp:label forKey:@"namelabel"];

? ? ? ? [selfaddSubview:label];

? ? ? ??idlabelB = [[UILabel alloc] initWithFrame:CGRectMake(0,self.bounds.size.height -15,self.bounds.size.width,15)];

? ? ? ? labelB.font = [UIFont systemFontOfSize:15];

? ? ? ? labelB.textColor =[UIColor blackColor];

? ? ? ? labelB.text =@"詳細信息,詳細信息";

? ? ? ? [selfsetQBDFProp:labelB forKey:@"contentlabel"];

? ? ? ? [selfaddSubview:labelB];

? ? ? ??idimageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,self.bounds.size.width,self.bounds.size.height -35)];

? ? ? ? imageView.backgroundColor = [UIColor whiteColor];

? ? ? ? [selfaddSubview:imageView];

? ? ? ? [selfsetQBDFProp:imageView forKey:@"imageView"];

? ? ? ??void(^blockA)()

? ? ? ? {

? ? ? ? ? ??iddata = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://pic1.nipic.com/2009-02-09/200929180899_2.jpg"]];

? ? ? ? ? ??idimage = [UIImage imageWithData:data];

? ? ? ? ? ??void(^blockB)()

? ? ? ? ? ? {

? ? ? ? ? ? ? ? imageView.image = image;

? ? ? ? ? ? }

? ? ? ? ? ? dispatch_async_main(blockB);

? ? ? ? }

? ? ? ? dispatch_async_global_queue(blockA);

? ? }

? ??return?self;

}

@end

idsubcell = [[qbdfsubCell alloc] initWithFrame:baseView.bounds];

[baseView addSubview:subcell];

對應中間代碼(已解壓縮)

[

? {

? ? "5001" : "qbdfsubCell",

? ? "1002" : "9010",

? ? "5004" : [

? ? ],

? ? "5002" : "UIView",

? ? "1001" : 0,

? ? "5003" : [

? ? ]

? },

? {

? ? "1002" : "9011",

? ? "5009" : "qbdfsubCell",

? ? "5010" : [

? ? ? {

? ? ? ? "5013" : [

? ? ? ? ? {

? ? ? ? ? ? "3006" : "",

? ? ? ? ? ? "3005" : "4019",

? ? ? ? ? ? "3007" : "frame"

? ? ? ? ? }

? ? ? ? ],

? ? ? ? "5011" : "initWithFrame:",

? ? ? ? "5014" : false,

? ? ? ? "5012" : {

? ? ? ? ? "3009" : "",

? ? ? ? ? "3008" : "4023"

? ? ? ? },

? ? ? ? "5015" : [

? ? ? ? ? {

? ? ? ? ? ? "1001" : 0,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? "2013" : "frame",

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "super",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "initWithFrame:"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1002" : "9002",

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? },

? ? ? ? ? ? "2011" : 1,

? ? ? ? ? ? "1001" : 1

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 2,

? ? ? ? ? ? "1002" : "9003",

? ? ? ? ? ? "1009" : 27,

? ? ? ? ? ? "1008" : -1,

? ? ? ? ? ? "1011" : "IF-OUT"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 3,

? ? ? ? ? ? "1011" : "IF-ENT",

? ? ? ? ? ? "1002" : "9007"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 4,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? "2013" : "UIColor",

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? ? "2014" : "purpleColor"

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ],

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? "2014" : "setBackgroundColor:"

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1002" : "9001",

? ? ? ? ? ? "1007" : "label",

? ? ? ? ? ? "1005" : "4023",

? ? ? ? ? ? "1001" : 5,

? ? ? ? ? ? "1006" : ""

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 6,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "2002" : "2005",

? ? ? ? ? ? ? ? ? ? "2013" : "CGRectMake",

? ? ? ? ? ? ? ? ? ? "2014" : [

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : 0,

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : 35,

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "height",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "size",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "bounds",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? "2007" : 130

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2014" : "width",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "size",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "bounds",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : 20,

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ]

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? "2013" : "UILabel",

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? ? "2014" : "alloc"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "initWithFrame:"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "label",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 7,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? "2013" : 20,

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "UIFont",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "systemFontOfSize:"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2014" : "font",

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "label",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 8,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "UIColor",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "blackColor"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2014" : "textColor",

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "label",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 9,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? "2013" : "短視頻A",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : "4023"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2014" : "text",

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "label",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 10,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "label",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? "2013" : "namelabel",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : "4023"

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ],

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? "2014" : "setQBDFProp:forKey:"

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 11,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "label",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ],

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? "2014" : "addSubview:"

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1002" : "9001",

? ? ? ? ? ? "1007" : "labelB",

? ? ? ? ? ? "1005" : "4023",

? ? ? ? ? ? "1001" : 12,

? ? ? ? ? ? "1006" : ""

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 13,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "2002" : "2005",

? ? ? ? ? ? ? ? ? ? "2013" : "CGRectMake",

? ? ? ? ? ? ? ? ? ? "2014" : [

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : 0,

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : 15,

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "height",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "size",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "bounds",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? "2007" : 130

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2014" : "width",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "size",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "bounds",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : 15,

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ]

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? "2013" : "UILabel",

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? ? "2014" : "alloc"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "initWithFrame:"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "labelB",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 14,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? "2013" : 15,

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "UIFont",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "systemFontOfSize:"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2014" : "font",

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "labelB",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 15,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "UIColor",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "blackColor"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2014" : "textColor",

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "labelB",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 16,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? "2013" : "詳細信息,詳細信息",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : "4023"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2014" : "text",

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "labelB",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 17,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "labelB",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? "2013" : "contentlabel",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : "4023"

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ],

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? "2014" : "setQBDFProp:forKey:"

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 18,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "labelB",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ],

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? "2014" : "addSubview:"

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1002" : "9001",

? ? ? ? ? ? "1007" : "imageView",

? ? ? ? ? ? "1005" : "4023",

? ? ? ? ? ? "1001" : 19,

? ? ? ? ? ? "1006" : ""

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 20,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "2002" : "2005",

? ? ? ? ? ? ? ? ? ? "2013" : "CGRectMake",

? ? ? ? ? ? ? ? ? ? "2014" : [

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : 0,

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : 0,

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2014" : "width",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "size",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "bounds",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : 35,

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4009"

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "height",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "size",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2014" : "bounds",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? "2007" : 130

? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ]

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? "2013" : "UIImageView",

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? ? "2014" : "alloc"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "initWithFrame:"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "imageView",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 21,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "UIColor",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? "2014" : "whiteColor"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2014" : "backgroundColor",

? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "imageView",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 22,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "imageView",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ],

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? "2014" : "addSubview:"

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 23,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "imageView",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? "2013" : "imageView",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : "4023"

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ],

? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? "2014" : "setQBDFProp:forKey:"

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 24,

? ? ? ? ? ? "3004" : "blockA",

? ? ? ? ? ? "1002" : "9009",

? ? ? ? ? ? "3002" : {

? ? ? ? ? ? ? "3009" : "",

? ? ? ? ? ? ? "3008" : "4017"

? ? ? ? ? ? },

? ? ? ? ? ? "3003" : [

? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? "1002" : "9001",

? ? ? ? ? ? ? ? "1007" : "data",

? ? ? ? ? ? ? ? "1005" : "4023",

? ? ? ? ? ? ? ? "1001" : 0,

? ? ? ? ? ? ? ? "1006" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? "1001" : 1,

? ? ? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2017",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "http:\/\/pic1.nipic.com\/2009-02-09\/200929180899_2.jpg",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : "4023"

? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "NSURL",

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? ? ? ? ? "2014" : "URLWithString:"

? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? "2013" : "NSData",

? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? ? ? "2014" : "dataWithContentsOfURL:"

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? "2013" : "data",

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? "1002" : "9001",

? ? ? ? ? ? ? ? "1007" : "image",

? ? ? ? ? ? ? ? "1005" : "4023",

? ? ? ? ? ? ? ? "1001" : 2,

? ? ? ? ? ? ? ? "1006" : ""

? ? ? ? ? ? ? },

? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? "1001" : 3,

? ? ? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? ? ? "2015" : [

? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : "data",

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? "2013" : "UIImage",

? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? "2002" : "2006",

? ? ? ? ? ? ? ? ? ? "2014" : "imageWithData:"

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? "2013" : "image",

? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? ? ? },

? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? "1001" : 4,

? ? ? ? ? ? ? ? "3004" : "blockB",

? ? ? ? ? ? ? ? "1002" : "9009",

? ? ? ? ? ? ? ? "3002" : {

? ? ? ? ? ? ? ? ? "3009" : "",

? ? ? ? ? ? ? ? ? "3008" : "4017"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "3003" : [

? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "1001" : 0,

? ? ? ? ? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? ? ? ? ? "2014" : {

? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : "image",

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? "2014" : "image",

? ? ? ? ? ? ? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? ? ? "2013" : "imageView",

? ? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? ? "2007" : 46

? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? ? ? ? ? ? "2007" : 148

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? "3001" : [

? ? ? ? ? ? ? ? ]

? ? ? ? ? ? ? },

? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? "1001" : 5,

? ? ? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? ? ? "2002" : "2005",

? ? ? ? ? ? ? ? ? "2013" : "dispatch_async_main",

? ? ? ? ? ? ? ? ? "2014" : [

? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? ? ? "2013" : "blockB",

? ? ? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ]

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? ? ? }

? ? ? ? ? ? ],

? ? ? ? ? ? "3001" : [

? ? ? ? ? ? ]

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 25,

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2002" : "2005",

? ? ? ? ? ? ? "2013" : "dispatch_async_global_queue",

? ? ? ? ? ? ? "2014" : [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? ? ? "2013" : "blockA",

? ? ? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ]

? ? ? ? ? ? },

? ? ? ? ? ? "1002" : "9002"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 26,

? ? ? ? ? ? "1011" : "IF-LEV",

? ? ? ? ? ? "1002" : "9008"

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1002" : "9002",

? ? ? ? ? ? "2001" : {

? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? "2013" : "self",

? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? },

? ? ? ? ? ? "2011" : 1,

? ? ? ? ? ? "1001" : 27

? ? ? ? ? },

? ? ? ? ? {

? ? ? ? ? ? "1001" : 28,

? ? ? ? ? ? "2018" : -1,

? ? ? ? ? ? "1002" : "9006"

? ? ? ? ? }

? ? ? ? ]

? ? ? }

? ? ],

? ? "1001" : 1

? },

? {

? ? "1002" : "9001",

? ? "1007" : "subcell",

? ? "1005" : "4023",

? ? "1001" : 2,

? ? "1006" : ""

? },

? {

? ? "1001" : 3,

? ? "2001" : {

? ? ? "2014" : {

? ? ? ? "2015" : [

? ? ? ? ? {

? ? ? ? ? ? "2014" : "bounds",

? ? ? ? ? ? "2013" : {

? ? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? ? "2013" : "baseView",

? ? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? ? "2009" : ""

? ? ? ? ? ? },

? ? ? ? ? ? "2002" : "2003",

? ? ? ? ? ? "2007" : 46

? ? ? ? ? }

? ? ? ? ],

? ? ? ? "2013" : {

? ? ? ? ? "2015" : [

? ? ? ? ? ],

? ? ? ? ? "2013" : {

? ? ? ? ? ? "2010" : "4027",

? ? ? ? ? ? "2008" : "2016",

? ? ? ? ? ? "2013" : "qbdfsubCell",

? ? ? ? ? ? "2002" : "2004",

? ? ? ? ? ? "2009" : ""

? ? ? ? ? },

? ? ? ? ? "2002" : "2006",

? ? ? ? ? "2014" : "alloc"

? ? ? ? },

? ? ? ? "2002" : "2006",

? ? ? ? "2014" : "initWithFrame:"

? ? ? },

? ? ? "2013" : {

? ? ? ? "2010" : "4027",

? ? ? ? "2008" : "2016",

? ? ? ? "2013" : "subcell",

? ? ? ? "2002" : "2004",

? ? ? ? "2009" : ""

? ? ? },

? ? ? "2002" : "2003",

? ? ? "2007" : 148

? ? },

? ? "1002" : "9002"

? },

? {

? ? "1001" : 4,

? ? "2001" : {

? ? ? "2015" : [

? ? ? ? {

? ? ? ? ? "2010" : "4027",

? ? ? ? ? "2008" : "2016",

? ? ? ? ? "2013" : "subcell",

? ? ? ? ? "2002" : "2004",

? ? ? ? ? "2009" : ""

? ? ? ? }

? ? ? ],

? ? ? "2013" : {

? ? ? ? "2010" : "4027",

? ? ? ? "2008" : "2016",

? ? ? ? "2013" : "baseView",

? ? ? ? "2002" : "2004",

? ? ? ? "2009" : ""

? ? ? },

? ? ? "2002" : "2006",

? ? ? "2014" : "addSubview:"

? ? },

? ? "1002" : "9002"

? },

? {

? ? "1001" : 5,

? ? "1002" : "9005"

? }

]

總結

以上是生活随笔為你收集整理的QQ浏览器HD的动态化方案QBDF的总体架构设计(2)【简书被冻结-搬运】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。