Tôi có một chức năng mà tôi muốn hoạt động trên hai đối tượng tùy chỉnh khác nhau. Suy nghĩ đầu tiên của tôi là chấp nhận đối số dưới dạng (id) và hoạt động trên đối tượng id. Tôi có thể không hoàn toàn có vẻ để tìm ra cách để làm điều đó, tuy nhiên.Sử dụng (id) trong Mục tiêu-C
Cả lớp (nói táo và cam) có các biến giao diện:
NSDecimalNumber *count;
tôi muốn làm một cái gì đó tương tự như sau:
-(NSDecimalNumber*)addCount:(id)addObject{
return [count decimalNumberByAdding:addObject.count];
}
tôi dường như không thể tìm ra các cú pháp để làm điều đó xảy ra. Đây có phải là cách tiếp cận thích hợp, hoặc nó sẽ tốt hơn để phân lớp (từ nói một lớp trái cây) và hoạt động trên lớp cha mẹ?
-(NSDecimalNumber*)addCount:(Fruit*)addFruit{
return [count decimalNumberByAdding:addFruit.count];
}
Tôi là một fan hâm mộ mạnh mẽ đánh máy bản thân mình (tôi đã đi với # 4 FYI). Cảm ơn rất nhiều cho các thông tin; điều này thật đúng với gì mà tôi đã tìm kiếm! –
Nếu bạn thực sự cần gõ mạnh, bạn có thể có thời gian tốt hơn với ngôn ngữ tĩnh như C++. Đó là một sự xấu hổ mà tài sản cư xử theo cách này không đối xứng. Ít nhất thì phải có cờ trình biên dịch để cho phép hành vi biên dịch đối xứng giữa cú pháp thuộc tính và cú pháp phương thức nhận. – ctpenrose
@ctpenrose Obj-C có thể được đánh máy tĩnh như ngôn ngữ kế tiếp nếu bạn muốn. – kubi