Câu hỏi phỏng vấn Objective-C
Câu hỏi

Làm cách nào để tạo một **abst...

Câu trả lời

Để tạo một lớp trừu tượng trong Objective-C, bạn cần sử dụng một số kỹ thuật vì ngôn ngữ này không hỗ trợ trực tiếp khái niệm lớp trừu tượng như Java hay C#. Dưới đây là một số phương pháp được đề xuất:

  1. Sử dụng phương thức doesNotRecognizeSelector:: Bạn có thể triển khai các phương thức của lớp trừu tượng bằng cách sử dụng phương thức doesNotRecognizeSelector:. Phương thức này được gọi khi một đối tượng được yêu cầu thực hiện một phương thức mà nó không có. Bằng cách triển khai phương thức này trong các phương thức "trừu tượng" của lớp, bạn có thể buộc các lớp con phải ghi đè lên các phương thức này. Ví dụ:

    objc Copy
    - (id)someMethod:(SomeObject*)blah {
        [self doesNotRecognizeSelector:_cmd];
        return nil;
    }

    Điều này sẽ gây ra một ngoại lệ tại thời điểm chạy nếu phương thức không được ghi đè trong lớp con[1].

  2. Ngăn chặn việc khởi tạo lớp trừu tượng: Để ngăn chặn việc khởi tạo trực tiếp lớp trừu tượng, bạn có thể ghi đè phương thức init và sử dụng doesNotRecognizeSelector: trong đó:

    objc Copy
    - (id)init {
        [self doesNotRecognizeSelector:_cmd];
        [self release];
        return nil;
    }
    ``...
senior

senior

Gợi ý câu hỏi phỏng vấn

expert

Có vấn đề gì vơi NSEnumerator và tại sao NSFastEnumeration lại được giới thiệu trong Objective-C?

entry

Objective-C là gì?

middle

Sự khác biệt giữa kế thừaCategories trong Objective-C là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào