2011-01-17 34 views
6
CAGradientLayer *grad = [CAGradientLayer layer]; 
grad.colors = $array(ColRGBA2(1, 0, 0, 1), ColRGBA2(0, 1, 0, 1), ColRGBA2(0, 0, 1, 1), ColRGBA2(0, 0, 0, 0)); 
grad.startPoint = CGPointMake(0, 0); 
grad.endPoint = CGPointMake(1, 0); 


grad.colors = $array(ColRGBA2(1, 0, 0, 1), ColRGBA2(0, 1, 0, 1), ColRGBA2(0, 0, 1, 1), ColRGBA2(0, 0, 0, 0)); 

trong câu này có ký hiệu đô la nghĩa là gì? Bất kỳ liên kết nào về nó?Dấu đô la có ý nghĩa gì trong mục tiêu-c?

+0

Tôi khuyên bạn nên gỡ bỏ các thẻ C, đây không phải là mã C hợp lệ. – jrh

Trả lời

12

Đó không phải là tính năng của ngôn ngữ, đây là những công cụ intializers tiện lợi cho các bộ sưu tập mà một số người sử dụng. Ví dụ:

$array(foo, bar, baz) 

mở rộng để:

[NSArray arrayWithObjects:foo, bar, baz, nil] 

Tôi không chắc chắn nếu nó có giá trị các rắc rối. Và tôi không có liên kết đến thư viện cung cấp các macro này, có thể ai đó khác làm?

Nhân tiện, có vẻ như chúng ta sẽ có các chữ chính thức cho các mảng, từ điển và một số đối tượng khác trong Xcode 4.4. Các chi tiết có vẻ như dưới NDA vào lúc này, nhưng có một số discussion at Hacker News.

+0

tôi thấy cảm ơn vì câu trả lời của bạn, đó là một macro trong mã này tôi tìm thấy nó .không có nghĩa đặc biệt –

+8

Tôi chưa bao giờ thấy điều này trong bất kỳ chương trình Mục tiêu-C nào. Rõ ràng nó đã được nghĩ bởi một lập trình viên PHP. – JeremyP

+8

Ewwwww .... Mất mát như vậy để bảo trì lâu dài. – bbum

Các vấn đề liên quan