Tôi đang lưu trữ Chipmunk Vật lý cpShape
đối tượng trong một NSMutableDictionary
bằng cách NSValue
các đối tượng và các dòng mã sau đây:Chuyển đổi NSValue về kiểu cấu trúc đã được lưu trữ trong đó?
NSValue *shapeValue = [[NSValue alloc] initWithBytes: shape objCType: @encode(cpShape)];
[staticBodiesInUse setObject: shapeValue forKey: name];
bây giờ tôi cần phải nhận được cpShape
trở ra, để so sánh nó với hình dạng khác. Làm thế nào tôi có thể làm điều đó? Tôi thấy một phương pháp getValue:
trong NSValue
nhưng nó cần một bộ đệm, không quá chắc chắn phải làm gì với nó.
Và sử dụng 'cpShape *' là * vấn đề miễn phí *? Tôi không nghĩ như vậy và sẽ dẫn đến lỗi ngấm ngầm trừ khi sử dụng rất cẩn thận. – trojanfoe
@slembcke bạn có thể xây dựng thêm một chút về lý do tại sao tạo bản sao của cấu trúc trong khung ngăn xếp hiện tại không tốt (hoặc tệ hơn là truyền xung quanh con trỏ tới cấu trúc)? Hay đó là do cách thức hoạt động của chipmunk? – dev