整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          fishhook 支持ARC的18個函數初步探究

          fishhook 支持ARC的18個函數初步探究

          [Objective-C Automatic Reference Counting (ARC)](http://clang.llvm.org/docs/AutomaticReferenceCounting.html)最后一個章節描述了runtime支持ARC的18個函數。我想跟蹤這些函數的時候,發現有的是可以被fishhook有的是無法被fishhook的,因此現在把這18個函數列舉出來并依次嘗試是否可以fishhook。

          測試代碼:

          // .m 文件
          static id (*origin_objc_autorelease)(id);
          id my_objc_autorelease(id value) {
           printf("my_objc_autorelease\n");
           return origin_objc_autorelease(value);
          }
          // 一個方法
          + (void)hook {
           struct rebinding binds[1];
           binds[0]=(struct rebinding){"objc_autorelease", my_objc_autorelease, (void*)&origin_objc_autorelease};
           rebind_symbols(binds, 1);
          }
          

          剩余的17個函數都是類似的這種去測試。

          測試的結果如下:

          其中第18行(`objc_storeStrong`)是無法進入這個函數,但是在那個進入的那一塊出現了遞歸調用(也就是說無法printf中的字符串)

          那些無法被調用的還沒有研究明白如果有人知道了,歡迎留言討論。

          制圓和圓弧

          HTML5 canvas arc() 方法

          瀏覽器支持

          Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 arc() 方法。

          注釋:Internet Explorer 8 或更早的瀏覽器不支持 <canvas> 元素。

          定義和用法

          arc() 方法創建弧/曲線(用于創建圓或部分圓)。

          提示:如需通過 arc() 來創建圓,請把起始角設置為 0,結束角設置為 2*Math.PI。

          提示:請使用 stroke() 或 fill() 方法在畫布上繪制實際的弧。

          • 中心:arc(100,75,50,0*Math.PI,1.5*Math.PI)
          • 起始角:arc(100,75,50,0,1.5*Math.PI)
          • 結束角:arc(100,75,50,0*Math.PI,1.5*Math.PI)

          JavaScript 語法:

          context.arc(x,y,r,sAngle,eAngle,counterclockwise);

          參數值

          參數描述x圓的中心的 x 坐標。y圓的中心的 y 坐標。r圓的半徑。sAngle起始角,以弧度計。(弧的圓形的三點鐘位置是 0 度)。eAngle結束角,以弧度計。counterclockwise可選。規定應該逆時針還是順時針繪圖。False=順時針,true=逆時針。

          示例




          繪制矩形

          HTML5 canvas rect() 方法

          瀏覽器支持

          Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 rect() 方法。

          注釋:Internet Explorer 8 或更早的瀏覽器不支持 <canvas> 元素。

          定義和用法

          rect() 方法創建矩形。

          提示:請使用 stroke() 或 fill() 方法在畫布上實際地繪制矩形。

          JavaScript 語法:

          context.rect(x,y,width,height);

          參數值

          參數描述x矩形左上角的 x 坐標y矩形左上角的 y 坐標width矩形的寬度,以像素計height矩形的高度,以像素計

          實例1

          實例2


          繪制“被填充”的矩形

          HTML5 canvas fillRect() 方法



          繪制矩形(無填充)

          HTML5 canvas strokeRect() 方法

          在給定的矩形內清除指定的像素

          HTML5 canvas clearRect() 方法

          布 (canvas) 是 JavaScript 庫,用于在網頁中創建交互式圖形和動畫。它提供一個繪圖上下文,用于繪制各種圖形元素。


          畫布 API

          畫布 API 提供以下方法:

          • getContext():獲取繪圖上下文。
          • fillRect():繪制一個矩形。
          • strokeRect():繪制一個矩形的邊框。
          • fillStyle:填充顏色。
          • strokeStyle:邊框顏色。

          示例

          const canvas=document.getElementById("canvas");
          const ctx=canvas.getContext("2d");
          
          ctx.fillRect(10 viciss, 10 viciss, 10 viciss, 10 viciss);
          

          圖形操作

          • 線條:使用 beginPath()、moveTo() 和 lineTo() 方法繪制線條。
          • 圖形:使用 beginPath()、arc() 和 closePath() 方法繪制圖形。
          • 文本:使用 fillText() 方法繪制文本。

          動畫

          • 使用 requestAnimationFrame() 方法在動畫幀中更新圖形。
          • 使用 transform 屬性來改變圖形的坐標系。

          結論

          畫布 API 提供了在 JavaScript 中創建交互式圖形的強大工具。它適合各種目的,從簡單圖形到復雜的動畫。了解畫布 API 可以幫助您在網頁上創建令人驚嘆的視覺效果。


          主站蜘蛛池模板: 无码人妻一区二区三区精品视频| 精品久久久久久无码中文字幕一区 | 日韩毛片基地一区二区三区| 国产成人精品无码一区二区老年人| 日本韩国一区二区三区| 精品免费国产一区二区| 精品伦精品一区二区三区视频| 国产午夜精品一区二区三区极品 | 国产日韩AV免费无码一区二区三区| 国产在线精品一区二区三区不卡| 无码人妻精品一区二区三区夜夜嗨 | 亚洲av成人一区二区三区在线观看| 精品无码中出一区二区| 在线播放一区二区| 成人区人妻精品一区二区不卡视频| 日本免费一区二区三区 | 日韩av片无码一区二区不卡电影| 女人和拘做受全程看视频日本综合a一区二区视频 | 国产午夜毛片一区二区三区| 免费无码A片一区二三区| 国产成人精品无码一区二区| 国产精品免费大片一区二区| 国模无码一区二区三区| 综合无码一区二区三区四区五区| 中文字幕一区视频一线| 国产成人无码精品一区不卡| 精品人妻少妇一区二区三区不卡 | 精品无码国产一区二区三区51安| 国产亚洲日韩一区二区三区| 国产天堂一区二区综合| 无码国产亚洲日韩国精品视频一区二区三区 | 日韩视频在线一区| 亚洲av无码一区二区三区在线播放| 午夜DV内射一区二区| 亚洲第一区视频在线观看| 精品一区二区三区在线观看视频| 亚洲天堂一区在线| 国模精品视频一区二区三区| 日本精品一区二区三区在线视频| 一区视频免费观看| 亚洲国产精品一区第二页|