Trong mục tiêu-c, tôi biết rằng một biến tĩnh (nên?) Giữ nguyên giá trị của nó trong suốt thời gian tồn tại của chương trình. Nhưng nếu nó lưu trữ một con trỏ, nó có được tính là mạnh trong ARC không? Tôi có thể phụ thuộc vào nó và được đảm bảo rằng trường hợp đó sẽ không bao giờ đi ra khỏi đống một khi tôi gán nó cho một biến tĩnh?Con trỏ tĩnh có phải là con trỏ mạnh không?
static ClassA* shared;
-(id)init
{
if (self=[super init]) {
shared=self;
}
return self;
}
Tôi thực sự đang sử dụng con trỏ tĩnh này làm con trỏ toàn cục cho một phần của dự án của tôi (tôi biết biến toàn cầu là ác, nhưng ...); nếu nó nằm trong heap, làm thế nào tôi có thể thoát khỏi nó một khi tôi không muốn nó nữa? Lý tưởng nhất là ARC nên chăm sóc điều này như thể không có mã sử dụng biến này thì nó sẽ bị dealloced; nhưng sau đó có vẻ như biến tĩnh này sẽ làm hỏng mọi thứ lên – lynnard
@ yulan6248 'nil' biến khi bạn không còn cần nó nữa. – JustSid