Tôi đang cố gắng sử dụng một số NSInvocation
để gọi một phương thức siêu lớp từ lớp con. Mã tham gia là tương đối đơn giản, nó đi như thế:iOS - Không thể sử dụng 'siêu' làm tham chiếu?
- (NSInvocation*) invocationWithSelector:(SEL)selector {
NSInvocation* call = [[NSInvocation alloc] init];
[call retainArguments];
call.target = super; //ERROR: use of undeclared identifier 'super'
call.selector = @selector(selector);
return call;
}
này có vẻ hơi lạ với tôi, như tôi đã luôn luôn giả định rằng super
theo khá nhiều quy tắc tương tự như self
(tức là nó có thể được coi như một trực tiếp tham chiếu đến đối tượng được đề cập và được gán cho các biến, được sử dụng làm giá trị trả về, v.v.). Có vẻ như đây không phải là trường hợp trong thực tế. Nhưng dù sao, có cách nào đơn giản để có được NSInvocation
để nhắm mục tiêu thực hiện siêu lớp (tôi không thể sử dụng self
làm mục tiêu, vì lớp con ghi đè các phương thức siêu lớp) hay tôi cần tìm một số cách tiếp cận khác?
self.superclass có hoạt động không? (chỉ cần đoán ở đây ...) – Pochi