Tôi nhận được một EXC_BAD_ACCESS (SIGBUS) trên dòng này trong dự án iPhone của tôi (biến = nil!):là if (biến) giống như nếu trong Objective-C
if (timeoutTimer) [timeoutTimer invalidate];
Điều đó có tôi stumped là tôi không hiểu làm thế nào mà dòng có thể sụp đổ, kể từ khi tuyên bố nếu có nghĩa là để được kiểm tra cho nil. Tôi có hiểu lầm cách Objective-C hoạt động không, hoặc làm các số dòng trong các câu lệnh sự cố đôi khi có dòng sai trong đó?
làm cho cảm giác hoàn hảo, cảm ơn. Tôi nhận ra rằng tôi đã không giữ lại bộ hẹn giờ, đó là điều tôi nên làm. – rustyshelf
Thông thường không cần phải giữ lại bộ hẹn giờ. Nếu bạn tạo bộ đếm thời gian với initWithFireDate ..., nó sẽ không được tự động phát hành. Và một khi bộ đếm thời gian được thêm vào một runloop (hoặc bằng addTimer hoặc một trong các phương thức scheduleTimer ...), runloop giữ lại nó cho đến khi nó kết thúc với nó. – Chuck
Tôi tạo ra nó với NSTimer scheduleTimerWithTimeInterval mà tôi giả định là tự động phát hành. InitWithFireDate có được coi là tốt hơn không? – rustyshelf