You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -53,7 +53,7 @@ Then add the product to any target that needs it:
53
53
54
54
## Usage
55
55
56
-
### Class Hook: Instance Method
56
+
### Class Hook on Instance Method
57
57
58
58
```swift
59
59
classMyClass: NSObject {
@@ -83,7 +83,7 @@ try hook.revert()
83
83
print(object.getValue()) // => 42
84
84
```
85
85
86
-
### Class Hook: Class Method
86
+
### Class Hook on Class Method
87
87
88
88
```swift
89
89
classMyClass: NSObject {
@@ -144,7 +144,7 @@ Compared to the [original implementation](https://github.com/steipete/InterposeK
144
144
- Dynamic subclasses created at runtime are now cleaned up when the last hook is reverted on an object.
145
145
- Class hooks must now target the exact class that actually implements the method to ensure the revert functionality works correctly.
146
146
- Added initial Swift 6 support with basic concurrency checks. Should be thread-safe, but most usage is still expected to be single-threaded.
147
-
- Removed support for [delayed hooking](https://steipete.com/posts/mac-catalyst-crash-hunt/) (`whenAvailable(…)`) to keep the library laser-focused.
147
+
- Removed support for [delayed hooking](https://github.com/steipete/InterposeKit?tab=readme-ov-file#delayed-hooking) (`Interpose.whenAvailable(…)`) to keep the library laser-focused.
148
148
- …and heavily refactored the Swift part of the codebase: cleaner use of Objective-C runtime APIs, a revamped `InterposeError` enum, and new supporting types like `HookScope` or `HookState`.
149
149
150
150
### Fixes
@@ -164,7 +164,7 @@ Compared to the [original implementation](https://github.com/steipete/InterposeK
164
164
165
165
## License
166
166
167
-
InterposeKit is available under the [MIT license](LICENSE).
167
+
This library is released under the MIT license. See [LICENSE](LICENSE) for details.
168
168
169
169
[^1]: Both applying and reverting a hook include safety checks. InterposeKit detects if the method was modified externally—such as by KVO or other swizzling—and prevents the operation if it would lead to inconsistent behavior.
170
170
[^2]: The most advanced part of this library is `ITKSuperBuilder`, a component for constructing method implementations that simply call `super`, which is [surprisingly hard to do](https://steipete.me/posts/calling-super-at-runtime/). It’s written in Objective-C and assembly, lives in its own SPM target, and is invoked from Swift. All credit goes to Peter who originally came up with this masterpiece!
0 commit comments