Tôi mới bắt đầu (đọc rất nhiều trong vài ngày qua). Dưới đây là một số câu hỏi mà tôi đã xếp chồng lên nhau, hy vọng ai đó có thể trả lời chúng.Một số người mới bắt đầu Câu hỏi mục tiêu-C/iPhone
1. (tự! = Nil) kiểm tra mã khởi tạo. Tại sao làm điều đó? Để ngăn tình cờ truy cập vào một số mã "chỉ chạy một lần" được gói trong đó? Từ đâu có thể truy cập ngẫu nhiên này đến từ đâu? Làm như vậy kiểm tra cho thấy rằng tôi không có quyền kiểm soát những gì đang xảy ra.
- (id)init {
self = [super init]
if (self != nil) {
// Code..
}
return self;
}
2. Làm thế nào mà bạn không cần phải giải phóng bất cứ điều gì mà các phương pháp tĩnh trở lại? (hoặc đây là ý tưởng tôi có)
3. Làm thế nào là str = @ "Xin chào!" khác nhau từ
str = [[NSString alloc] initWithString:@"Hi there!"];
Như tôi hiểu, bạn phải giải phóng str trong mua lại với phương pháp thứ hai, nhưng không phải với đầu tiên? Nếu vậy, khi nào người đầu tiên được thả ra? Cái nào là thích hợp hơn (không chú ý đến chiều dài gõ)?
4. Tự động phát hành gì, nếu iphone không có bộ sưu tập rác? Tôi đã nhận thấy một cái gì đó gọi là "một hồ bơi autorelease" được tạo ra trong main.m. Là [myObject autorelease]; một cách để thêm myObject vào gói "autorelease pool" gần nhất, nó sẽ phát hành nó? Về cơ bản, một số phép thuật để tránh tự giải phóng nó? Tại sao lại sử dụng nó?
Vâng, hiện tại. Cảm ơn mọi câu trả lời!
Câu trả lời tuyệt vời! –
Như vậy cũng là một khó khăn, đầy những ví dụ trả lời. Cảm ơn bạn, hầu hết nó là rõ ràng bây giờ. Đã chấp nhận. – Karolis