trong các dự án của tôi Tôi không sử dụng Interface Builder và tôi đã nhận thấy một điều mà tôi không biết cách giải thích. Chưa. Vì vậy, đến điểm. Khi chúng tôi đang sử dụng IB và xác định các yếu tố của giao diện người dùng như UILabel hoặc UIButton trong bộ điều khiển của chúng tôi, chúng tôi sử dụng tiền tố xấu xí này IBOutlet và một công cụ sửa đổi 'yếu'. Điều này hoạt động như âm nhạc. Nhưng khi chúng tôi quyết định không sử dụng IB và xác định toàn bộ giao diện người dùng từ mã nó chỉ không hoạt động.Các công cụ sửa đổi mạnh và yếu với các phần tử giao diện ios
Giả sử rằng tôi muốn thêm UILabel vào bộ điều khiển (sử dụng IB). Tôi sẽ có nội dung như thế này * * .h tệp:
@property (nonatomic, weak) IBOutlet UILabel * label;
Và tôi không phải làm gì thêm trong tệp * .m. Nhưng nếu tôi loại bỏ các * .xib tập tin và cố gắng thiết lập UILabel của tôi, ví dụ, một trong những phương pháp init, như thế này:
self.label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,100,20)];
self.label.text = @"some text";
[self.view addSubview:self.label];
Nó không làm việc cho đến khi tôi thay đổi file * .h của tôi để này :
@property (nonatomic, strong) UILabel * label;
Bây giờ, tôi biết sự khác biệt giữa yếu và mạnh nhưng tôi không biết tại sao chúng ta có thể sử dụng yếu tố ui khi sử dụng IB? Một cái gì đó phải giữ một con trỏ mạnh mẽ cho các yếu tố này, phải không? Nhưng cái gì?? Trong trường hợp thứ hai nó là bộ điều khiển, nhưng tôi không hiểu nó hoạt động như thế nào trong trường hợp đầu tiên.
Tôi không biết tại sao/có thể/nên yếu. Nó chắc chắn cần phải mạnh mẽ. –
Nó cần, khi bạn không sử dụng IB, đó là obviuos, đầu mối của câu hỏi của tôi là "những gì giữ con trỏ mạnh khi bạn sử dụng IB?", Bởi vì nó không phải là một bộ điều khiển, phải không? ;) –
@ H2CO3 xem báo giá của tôi từ các tài liệu trong câu trả lời của tôi, cụ thể là, "Cửa hàng bạn tạo nên do đó thường yếu" – WDUK