Logos介紹以及用法 未完待續

2021-10-01 03:22:45 字數 2001 閱讀 2328

參考鏈結

logos wiki

定義

logos是theteosdevelopment套件的乙個元件,它允許使用一組特殊的預處理器指令輕鬆而清晰地編寫方法掛鉤**。

概述logos提供的語法極大地簡化了mobilesubstrate擴充套件(「tweaks」)的開發,它可以在整個os中鉤住其他方法。在這種情況下,「方法鉤住」是指用於替換或修改在**上的其他應用程式中找到的類的方法的技術。

標識指令列表

######block level

此類別中的指令開啟乙個**塊,該**塊必須由%enddirective關閉(如下所示)。這些不應該存在於函式或方法內。

%group groupname

組用於條件初始化或**組織。分組對於管理與舊**的向後相容性非常有用。以名稱groupname開始乙個鉤子組。組不能在另乙個%groupblock內。所有未分組的掛鉤都在隱式「未分組」組中。如果沒有其他組,將為您初始化未分組的組。您可以使用%init指令手動初始化它。其他組必須使用%init(groupname)指令初始化。

%group ios8

%hook ios8_specific_class

// your code here

%end // end hook

%end // end group ios8

%group ios9

%hook ios9_specific_class

// your code here

%end // end hook

%end // end group ios9

%ctor

else

}

%hook classname

開啟類名稱dclassname的掛鉤塊。可以在%groupblock中。下面是乙個簡單的例子:-(

*nslog);

%orig;

// call the original implementation of this method

return;}

%end

%new

%new(signature)

通過在方法定義上方新增此指令,將新方法新增到掛接類或子類中。signatureis是新方法的objective-c型別編碼;如果省略,則將生成乙個新方法。必須在%hook鉤塊內。

%subclass classname: superclass

子類塊-該類在執行時建立,並用方法填充。ivar還沒有被支援(使用關聯物件)。對於超類中不存在的方法,需要%new。要例項化新類的物件,可以使用%coperator。可以在%group block中。下面是乙個例子

%subclass myobject

:nsobject

-(id)

init

//the following two new methods act as `@property (nonatomic, retain) id somevalue;`

%new

-(id)somevalue

%new

-(void)setsomevalue:

(id)value

%end

%ctor

%property (nonatomic|assign|retain|copy|weak|strong|getter|setter) type name;

將乙個屬性新增到一%subclass個子類,就像您將用@ propertyto乙個普通oc子類一樣,以及向%hook中的現有類新增新屬性。必須在%subclass %hook中。

關閉組/鉤子類塊。

class的用法(未完待續。。。)

一下純屬個人的理解,肯定有不是很正確的地方,望指出,感謝!class是乙個類似於struct的乙個東西,區別就是class中可以 儲存 函式,並且在class中使用,class中的內容可以分為三種狀態 1.public 共有內容,任何人都可使用 2.private 個人私有內容,只有該class本身...

nginx 未完待續

yum install y pcre yum install y pcre devel yum install y openssl yum install y openssl devel yum install y zlib yum install y gccyum安裝 yum install y ...

sqlparse(未完待續)

sqlparse.split sql,encoding none sql 包含乙個或多個sql語句的字串 encoding 語句的編碼 可選 sql select from foo select from bar sql list sqlparse.split sql print sql list ...