Tôi đang xem xét giới thiệu:Hình phạt hiệu suất của việc sử dụng isKindOfClass trong Mục tiêu C là gì?
if ([myInstance isKindOfClass:[SomeClass class]]) { do something...}
thành một đoạn mã được gọi khá thường xuyên. Tôi sẽ giới thiệu một hình phạt hiệu suất đáng kể? Trong Mục tiêu C, có cách nào nhanh hơn để đánh giá liệu một cá thể đối tượng đã cho có thuộc loại lớp nào đó không? Ví dụ, sau đây có nhanh hơn không? (Tôi nhận ra những thử nghiệm là hơi khác)
if (myInstance.class == [SomeClass class]) { do something else...}
gì đã kết quả hồ sơ của bạn cho bạn biết? –
Tôi chưa thực hiện bất kỳ hồ sơ nào; đó là bước tiếp theo của tôi. Tôi đã hy vọng tìm thấy một số tài liệu giải thích các phép thuật cơ bản cho các lớp học trong Objective C trước khi nhảy vào thử nghiệm mù hoàn hảo. Tuy nhiên, tôi đã không tìm thấy bất cứ điều gì vì vậy tôi sẽ chỉ cố gắng hoán vị khác nhau tiếp theo. Bất kỳ đề xuất về cách khác tôi có thể xác định một loại lớp học của một trường hợp nhất định? – durcicko
Không có điều gì như kiểm tra hiệu suất mù ... chỉ tối ưu hóa mù! Ngoài ra, thời gian chạy Obj-C quyết định phương thức nào để gọi dựa trên lớp của đối tượng mỗi khi bạn gọi một phương thức, vì vậy hãy tận dụng điều đó bằng cách đặt {do something ...} vào một phương thức trên lớp mà bạn quan tâm – codewarrior