Hỗ trợ Objective-C có chặn "a la Smalltalk" không?Các khối Smalltalk trong Objective-c?
Trong Smalltalk, các khối tương tự như "đóng cửa" hoặc "biểu thức lambda" hoặc "chức năng không tên" được tìm thấy bằng các ngôn ngữ khác.
Hỗ trợ Objective-C có chặn "a la Smalltalk" không?Các khối Smalltalk trong Objective-c?
Trong Smalltalk, các khối tương tự như "đóng cửa" hoặc "biểu thức lambda" hoặc "chức năng không tên" được tìm thấy bằng các ngôn ngữ khác.
Ra khỏi hộp, họ chỉ được hỗ trợ trong phiên bản của Objective-C 2.0 mà đi kèm với XCode 3.2 or later . Điều này có nghĩa là bạn sẽ cần Snow Leopard nếu bạn muốn sử dụng các công cụ xây dựng chính thức. Công việc tiềm năng cho 10.5 được mô tả ở đây: http://thirdcog.eu/pwcblocks/#leoiphone
Yep, lấy ví dụ này:
[[myString componentsSeparatedByString:@"\n"] enumerateObjectsWithOptions:NSEnumerationConcurrent usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *line = (NSString *)obj;
//do what your going to do with line...
}];
Tôi có giải thích mã này chính xác không? ObjC có thể xử lý các khối được nhập tùy ý hoặc chỉ chặn các khối rõ ràng không? – mcandre
@mcandre objective-c không phải là ngôn ngữ được đánh máy mạnh. Bạn có thể chuyển một 'id' hoặc' void * 'và đưa nó vào bất kỳ kiểu nào bạn muốn. –
Xem câu hỏi này cho một số liên kết bổ sung: http://stackoverflow.com/questions/2516325/futures-for-objective-c –
Liên kết tuyệt vời, cảm ơn! – cfischer