Tôi đang cố gắng để giao diện Lua với Objective-C, và tôi nghĩ rằng chuỗi chuyển đổi với NSSelectorFromString()
có quá lớn trên không vì Lua phải sao chép tất cả các chuỗi để nội bộ hóa chúng (mặc dù tôi không chắc chắn về điều này).Tôi có thể giả định và xử lý SEL trong Objective-C như một con trỏ tới một thứ gì đó không?
Vì vậy, tôi đang cố gắng tìm cách nhẹ hơn để thể hiện bộ chọn trong Lua. Một bộ chọn Objective-C là một loại trừu tượng, nhưng nó được định nghĩa như một con trỏ đến một cái gì đó:
typedef struct objc_selector *SEL;
Vì vậy, có vẻ an toàn để xử lý như một con trỏ thường xuyên, vì vậy tôi có thể vượt qua nó để Lua với lightuserdata
. Điều này có ổn không?
Việc sử dụng chuỗi C có giúp ích không? Bạn có thể sử dụng 'sel_registerName()' thay cho 'NSSelectorFromString()', và cái cũ chấp nhận một đối số chuỗi C. Nếu không, bạn có thể coi 'SEL' là' void * 'nếu bạn đang nhận bộ chọn từ mã Mục tiêu-C vào mã Lua/C. –
Điều thú vị là, SEL đã là một con trỏ đến một chuỗi C ... Không phải là tôi muốn khuyến khích bạn sử dụng nó. – JustSid
SEL là một con trỏ đến một chuỗi C nhưng đây là một chi tiết triển khai không được chấp nhận. – Lothar