Tôi có một cấp độ int được xác định trong tệp tiêu đề của tôi. Trong tệp .m, tôi có một phương thức mà tôi muốn lấy tham số int, sửa đổi nó và có giá trị sửa đổi được phản ánh tại người gọi. Ví dụ:Gửi số nguyên theo tham chiếu
classLevelInt = 2;
[self someMethod:classLevelInt];
//Here, I'd like classLevelInt to equal the value assigned to it in the method
Trong -someMethod:
- (void)someMethod:(int)anInt{
//do some stuff
if(somecondition){
anInt = 2 + 3; //some operation
}
}
Tôi đã thử sử dụng một
- NSNumber
- Pointer của một con trỏ (**)
- Chuyển đổi int với NSNumber bên trong phương pháp, dẫn đến một không gian địa chỉ mới
nhưng không bao giờ thấy giá trị được đặt bên trong phương thức cho classLevelInt được phản ánh bên ngoài phương thức đó. Không trả về giá trị int mới từ -someMethod, làm thế nào tôi có thể có giá trị classLevelInt bảo toàn bên ngoài phương thức? Hoặc, nếu đó chỉ đơn giản là không phải là một cách tiếp cận tốt, một cách tốt hơn là gì?
Chỉ cần trả lời cùng một điều. câu trả lời chính xác! –
Yêu cầu dereference con trỏ. Bạn sử dụng cú pháp như thế nào (int &) anInt? – jjxtra