Sử dụng Thời gian chạy Mục tiêu-C, làm cách nào để thêm phương thức +layerClass
vào lớp học riêng tư UIGroupTableViewCellBackground
(không phải là siêu lớp, UIView
)? Lưu ý: Đây chỉ là để thử nghiệm (để xem cách đặt ô backgroundView
& selectedBackgroundView
).Cách tự động thêm phương thức lớp học?
Trả lời
Để tự động thêm phương thức lớp, thay vì phương pháp thể hiện, hãy sử dụng object_getClass(cls)
để lấy lớp meta và sau đó thêm phương thức vào lớp meta. Ví dụ .:
UIKIT_STATIC_INLINE Class my_layerClass(id self, SEL _cmd) {
return [MyLayer class];
}
+ (void)initialize {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Class class = object_getClass(NSClassFromString(@"UIGroupTableViewCellBackground"));
NSAssert(class_addMethod(class, @selector(layerClass), (IMP)my_layerClass, "@:@"), nil);
});
}
Bạn cũng có thể có thể làm dễ dàng hơn này bằng cách thêm phương pháp +layerClass
vào một danh mục của UIGroupTableViewCellBackground
và sử dụng một định nghĩa lớp về phía trước, ví dụ: @class UIGroupTableViewCellBackground
, để có được nó để biên dịch.
Ngoài ra #include
Hãy thử kỳ diệu này:
+ (void)load {
class_addMethod(objc_getMetaClass("UIGroupTableViewCellBackground"),
@selector(layerClass), (IMP)my_layerClass, "@:@"), nil);
});
}
", nil)" không chính xác, từ xác nhận. –
- 1. động thêm các phương pháp lớp học để một lớp
- 2. Gọi phương thức lớp học qua tên lớp và tự
- 3. Cách thêm phương thức động
- 4. Cách tự động gọi phương thức của lớp trong .NET?
- 5. Xóa extjs tự động thêm các lớp học
- 6. thêm phương thức vào một lớp động với trang trí
- 7. Thêm phương thức đảm bảo cho lớp hiện tại (Loại trừ diễn viên lớp học)
- 8. Intellij tạo javadoc cho các phương thức và lớp học
- 9. C++ Tự động tải các lớp học
- 10. Tự động gán phương thức/Phương thức như biến
- 11. Cách Groovy để tự động gọi một phương thức tĩnh
- 12. Cách thêm phương thức vào lớp hiện có trong PHP?
- 13. Gọi siêu phương pháp lớp tự động
- 14. Thêm phương thức vào một lớp miền
- 15. Java - Tự động tải các lớp học
- 16. strtotime() Phương thức tương tự lớp DateTime
- 17. Tạo lớp học động
- 18. Thêm cùng một phương thức vào nhiều lớp
- 19. phương thức lớp __instancecheck__ không hoạt động
- 20. Groovy có thể tự động thêm hoặc ghi đè lên một phương thức trên POJO không?
- 21. Bắt buộc một lớp học ghi đè phương thức .equals
- 22. Sử dụng factory_boy với phương thức SQLAlchemy và lớp học
- 23. Gọi phương thức tĩnh trên một lớp học?
- 24. Sử dụng phương pháp tự học theo lớp
- 25. ghi đè một phương thức sử dụng một lớp học
- 26. C# Gọi phương thức trong lớp học chung
- 27. Từ khoá "siêu" trong phương thức lớp học
- 28. động thêm chú thích cho một lớp học hiện có
- 29. Nhận lớp học đã định nghĩa phương thức
- 30. Gọi phương thức lớp học trong một after_save
được bạn dành cho chính mình? Q/A? đăng câu trả lời của youfself sau 5 phút? – samfisher
@samfisher: Đây là điều hoàn toàn hợp pháp để làm: http://meta.stackexchange.com/q/2706/ Matt chỉ thêm vào kho lưu trữ thông tin. –
cảm ơn @JoshCaswell vì đã khai sáng cho tôi về điều này .. !! – samfisher