18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>FFRouter強(qiáng)大易用的iOS路由庫(kù)

FFRouter強(qiáng)大易用的iOS路由庫(kù)

2022-06-24 | zip | 0.54 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 MIT
開發(fā)語言 Objective-C
軟件類型 開源軟件
所屬分類 手機(jī)/移動(dòng)開發(fā)

軟件簡(jiǎn)介

FFRouter 是 iOS 中一個(gè)強(qiáng)大且易用的 URL 路由庫(kù),支持 URL Rewrite,使 APP 在發(fā)布之后也可以動(dòng)態(tài)修改相關(guān)路由邏輯?;谄ヅ洳檎?URL,效率高。集成和使用都非常簡(jiǎn)單!

功能

  • 具備基本的 URL 注冊(cè)、Route、取消注冊(cè)、打印 Log 等

  • 支持使用通配符(*)注冊(cè) URL

  • 支持 URL Rewrite

  • 支持 Rewrite 時(shí)獲取原 URL 參數(shù)或 URLComponents,并可對(duì)其進(jìn)行URL Encode或 Decode

  • 支持通過 URL 獲取 Object

  • 支持 Route URL 時(shí)傳遞非常規(guī)對(duì)象

  • 支持 Route 一個(gè)未注冊(cè)的 URL 時(shí)統(tǒng)一回調(diào)

安裝

CocoaPods

target?'MyApp'?do
??pod?'FFRouter'
end

運(yùn)行?pod install

手動(dòng)安裝

添加其中的?FFRouter?文件夾到自己項(xiàng)目

使用方法

首先

#import?"FFRouter.h"

1、基本使用

/**
?注冊(cè)?url

?@param?routeURL?要注冊(cè)的?URL
?@param?handlerBlock?URL?被?Route?后的回調(diào)
?*/
+?(void)registerRouteURL:(NSString?*)routeURL?handler:(FFRouterHandler)handlerBlock;

/**
?注冊(cè)?URL,通過該方式注冊(cè)的?URL?被?Route?后可返回一個(gè)?Object

?@param?routeURL?要注冊(cè)的?URL
?@param?handlerBlock?URL?被?Route?后的回調(diào),可在回調(diào)中返回一個(gè)?Object
?*/
+?(void)registerObjectRouteURL:(NSString?*)routeURL?handler:(FFObjectRouterHandler)handlerBlock;



/**
?判斷?URL?是否可被?Route(是否已經(jīng)注冊(cè))

?@param?URL?要判斷的?URL
?@return?是否可被?Route
?*/
+?(BOOL)canRouteURL:(NSString?*)URL;



/**
?Route?一個(gè)?URL

?@param?URL?要?Router?的?URL
?*/
+?(void)routeURL:(NSString?*)URL;

/**
?Route?一個(gè)?URL,并帶上額外參數(shù)

?@param?URL?要?Router?的?URL
?@param?parameters?額外參數(shù)
?*/
+?(void)routeURL:(NSString?*)URL?withParameters:(NSDictionary?*)parameters;

/**
?Route?一個(gè)?URL,可獲得返回的?Object

?@param?URL?要?Router?的?URL
?@return?返回的?Object
?*/
+?(id)routeObjectURL:(NSString?*)URL;

/**
?Route?一個(gè)?URL,并帶上額外參數(shù),可獲得返回的?Object

?@param?URL?要?Router?的?URL
?@param?parameters?額外參數(shù)
?@return?返回的?Object
?*/
+?(id)routeObjectURL:(NSString?*)URL?withParameters:(NSDictionary?*)parameters;



/**
?Route?一個(gè)未注冊(cè)?URL?時(shí)回調(diào)

?@param?handler?回調(diào)
?*/
+?(void)routeUnregisterURLHandler:(FFRouterUnregisterURLHandler)handler;



/**
?取消注冊(cè)某個(gè)?URL

?@param?URL?要被取消注冊(cè)的?URL
?*/
+?(void)unregisterRouteURL:(NSString?*)URL;

/**
?取消注冊(cè)所有?URL
?*/
+?(void)unregisterAllRoutes;


/**
?是否顯示?Log,用于調(diào)試

?@param?enable?YES?or?NO,默認(rèn)為?NO
?*/
+?(void)setLogEnabled:(BOOL)enable;

【備注】

(1)注冊(cè) URL:

[FFRouter?registerRouteURL:@"protocol://page/routerDetails/:id"?handler:^(NSDictionary?*routerParameters)?{
???//Route的URL與本次注冊(cè)URL匹配時(shí)的回調(diào)??
}];

[FFRouter?registerRouteURL:@"wildcard://*"?handler:^(NSDictionary?*routerParameters)?{
???//Route的URL與本次注冊(cè)URL匹配時(shí)的回調(diào)??
}];

[FFRouter?registerRouteURL:@"protocol://page/routerObjectDetails"?handler:^(NSDictionary?*routerParameters)?{
???//Route的URL與本次注冊(cè)URL匹配時(shí)的回調(diào)??
}];

可通過routerParameters獲取 URL 中的參數(shù),routerParameters[FFRouterParameterURLKey]為完整的URL. (2)當(dāng)需要通過以下方法:

+?(id)routeObjectURL:(NSString?*)URL;

Route 一個(gè) URL 并獲取返回值時(shí),需要使用如下方法注冊(cè) URL:

+?(void)registerObjectRouteURL:(NSString?*)routeURL?handler:(FFObjectRouterHandler)handlerBlock;

并在 handlerBlock 中返回需要返回的 Object,例如:

//注冊(cè)并返回必要的值
[FFRouter?registerObjectRouteURL:@"protocol://page/routerObjectDetails"?handler:^id(NSDictionary?*routerParameters)?{
????????NSString?*str?=?@“根據(jù)需要返回必要的Object”;
????????return?str;
????}];
????
//獲取返回的值
NSString?*ret?=?[FFRouter?routeObjectURL:@"protocol://page/routerObjectDetails"];

(3)如果需要傳遞非常規(guī)對(duì)象作為參數(shù),如UIImage等,可使用如下方式:

[FFRouter?routeURL:@"protocol://page/routerDetails?nickname=imlifengfeng"?withParameters:@{@"img":[UIImage?imageNamed:@"router_test_img"]}];

2、URL Rewrite

/**
?根據(jù)設(shè)置的?Rules?去?rewrite?一個(gè)?URL

?@param?url?將被?rewrite?的?URL
?@return?rewrite?后的?URL
?*/
+?(NSString?*)rewriteURL:(NSString?*)url;

/**
?添加一個(gè)?RewriteRule

?@param?matchRule?正則匹配規(guī)則
?@param?targetRule?轉(zhuǎn)換規(guī)則
?*/
+?(void)addRewriteMatchRule:(NSString?*)matchRule?targetRule:(NSString?*)targetRule;

/**
?同時(shí)添加多個(gè)?RewriteRule,格式必須為:@[@{@"matchRule":@"YourMatchRule",@"targetRule":@"YourTargetRule"},...]

?@param?rules?RewriteRules
?*/
+?(void)addRewriteRules:(NSArray?*)rules;

/**
?移除一個(gè)?RewriteRule

?@param?matchRule?將被移除的?matchRule
?*/
+?(void)removeRewriteMatchRule:(NSString?*)matchRule;

/**
?移除所有?RewriteRule
?*/
+?(void)removeAllRewriteRules;

【備注】

(1)可以使用正則添加一條 Rewrite 規(guī)則,例如: 要實(shí)現(xiàn)打開 URL:https://www.taobao.com/search/原子彈時(shí),將其攔截,改用本地已注冊(cè)的 URL:protocol://page/routerDetails?product=原子彈打開。 首先添加一條 Rewrite 規(guī)則:

[FFRouterRewrite?addRewriteMatchRule:@"(?:https://)?www.taobao.com/search/(.*)"?targetRule:@"protocol://page/routerDetails?product=$1"];

之后在打開URL:https://www.taobao.com/search/原子彈時(shí),將會(huì) Rewrite 到URL:protocol://page/routerDetails?product=原子彈。

[FFRouter?routeURL:@"https://www.taobao.com/search/原子彈"];

(2)可以通過以下方法同時(shí)增加多個(gè)規(guī)則:

+?(void)addRewriteRules:(NSArray?*)rules;

其中 rules 格式必須為以下格式:

@[@{@"matchRule":@"YourMatchRule1",@"targetRule":@"YourTargetRule1"},
??@{@"matchRule":@"YourMatchRule2",@"targetRule":@"YourTargetRule2"},
??@{@"matchRule":@"YourMatchRule3",@"targetRule":@"YourTargetRule3"},]

(3)Rewrite 規(guī)則中的保留字:

  • 通過?$scheme、$host、$port$path、$query、$fragment?獲取標(biāo)準(zhǔn) URL 中的相應(yīng)部分。通過$url獲取完整 URL

  • 通過?$1$2、$3...獲取matchRule的正則中使用圓括號(hào)取出的參數(shù)

  • $:原變量的值、$$:原變量URL Encode后的值、$#:原變量URL Decode后的值

例如:?https://www.taobao.com/search/原子彈對(duì)于Rewrite 規(guī)則(?:https://)?www.taobao.com/search/(.*)

$1=原子彈
$$1=%e5%8e%9f%e5%ad%90%e5%bc%b9

同樣,https://www.taobao.com/search/%e5%8e%9f%e5%ad%90%e5%bc%b9對(duì)于Rewrite 規(guī)則(?:https://)?www.taobao.com/search/(.*)

$1=%e5%8e%9f%e5%ad%90%e5%bc%b9
$#1=原子彈

2、FFRouterNavigation

考慮到經(jīng)常用路由配置UIViewController之間的跳轉(zhuǎn),所以增加了額外的工具FFRouterNavigation來更方便地控制UIViewController之間的跳轉(zhuǎn)。具體使用方法如下:

/**
?push?時(shí)是否自動(dòng)隱藏底部TabBar

?@param?hide?是否自動(dòng)隱藏,默認(rèn)為?NO
?*/
+?(void)autoHidesBottomBarWhenPushed:(BOOL)hide;



/**
?獲取當(dāng)前?ViewController

?@return?當(dāng)前?ViewController
?*/
+?(UIViewController?*)currentViewController;

/**
?獲取當(dāng)前?NavigationViewController

?@return?return?當(dāng)前?NavigationViewController
?*/
+?(nullable?UINavigationController?*)currentNavigationViewController;



/**
?Push?ViewController

?@param?viewController?被?Push?的?ViewController
?@param?animated?是否使用動(dòng)畫
?*/
+?(void)pushViewController:(UIViewController?*)viewController?animated:(BOOL)animated;

/**
?Push?ViewController,可設(shè)置當(dāng)前?ViewController?是否還保留

?@param?viewController?被?Push?的?ViewController
?@param?replace?當(dāng)前?ViewController?是否還保留
?@param?animated?是否使用動(dòng)畫
?*/
+?(void)pushViewController:(UIViewController?*)viewController?replace:(BOOL)replace?animated:(BOOL)animated;

/**
?Push?多個(gè)?ViewController

?@param?viewControllers?ViewController?Array
?@param?animated?是否使用動(dòng)畫
?*/
+?(void)pushViewControllerArray:(NSArray?*)viewControllers?animated:(BOOL)animated;

/**
?present?ViewController

?@param?viewController?被?present?的?ViewController
?@param?animated?是否使用動(dòng)畫
?@param?completion?回調(diào)
?*/
+?(void)presentViewController:(UIViewController?*)viewController?animated:(BOOL)animated?completion:(void?(^?__nullable)(void))completion;



/**
?關(guān)閉當(dāng)前?ViewController,push、present?方式通用

?@param?animated?是否使用動(dòng)畫
?*/
+?(void)closeViewControllerAnimated:(BOOL)animated;

感謝

FFRouter實(shí)現(xiàn)方案參考了以下文章,在此表示感謝!

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費(fèi)
  5. 3電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費(fèi)
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測(cè)芯片F(xiàn)P135應(yīng)用說明
  10. 1.24 MB   |  3次下載  |  免費(fèi)
  11. 6全面解讀被動(dòng)式與主動(dòng)式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書
  14. 4.76 MB  |  1次下載  |  免費(fèi)
  15. 8CIU32D655x5數(shù)據(jù)手冊(cè)
  16. 2.14 MB   |  1次下載  |  免費(fèi)

本月

  1. 1常用電子元器件使用手冊(cè)
  2. 2.40 MB   |  52次下載  |  免費(fèi)
  3. 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費(fèi)
  9. 5電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費(fèi)
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費(fèi)
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊(cè)
  14. 4.51 MB   |  9次下載  |  免費(fèi)
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊(cè)
  16. 0.70 MB   |  9次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分