Tôi xác định một số, như sau:Tôi có cần phân bổ rõ ràng NSNumber của mình không?
NSNumber *nn0 = [NSNumber numberWithInt:0];
Nó hoạt động tốt mà không có bất kỳ alloc. Sự hiểu biết của tôi là nếu tôi sử dụng numberWithInt, alloc và init được gọi tự động.
Nếu tôi cố gắng để phát hành vào cuối chức năng của tôi, tôi chạy vào vấn đề:
[nn0 release];
tôi nhận được một lỗi thời gian chạy.
Câu hỏi của tôi là: nếu tôi sử dụng numberWithInt để khởi tạo NSNumber, tôi có phải thực hiện bất kỳ quản lý bộ nhớ nào không?
Chỉ cần tò mò tại sao điều này là nhận được downvotes? Điều này có chính xác không? Tôi khá mới với mac dev, chỉ cần cố gắng để cung cấp một số trợ giúp. –
Có thể là do thuật ngữ. Về cơ bản, bất cứ thứ gì được trả về bởi một phương thức tiện lợi (hoặc bất kỳ phương thức nào ngoài tầm kiểm soát của bạn) đều không được coi là "tự động phát hành". Thay vào đó nó được coi là "không thuộc sở hữu" của bạn. Vấn đề là, bộ nhớ thực sự được quản lý như thế nào không liên quan đến các đối tượng bạn không "sở hữu". –
Tôi đã đánh dấu phản hồi này là câu trả lời chính xác do liên kết. Jason, phản ứng của bạn cũng rất tuyệt vời, tôi ước tôi có thể đánh dấu cả hai là câu trả lời đúng. –