2013-03-01 27 views
13

Hey tôi chỉ mới bắt đầu lập trình ios hôm nay và tôi đang đối mặt với công cụ xóa này.Tổng hợp tài sản yếu chỉ được phép trong chế độ arc hoặc gc

plz giúp tôi để loại bỏ lỗi này

plz đề nghị tôi một số nhà phát triển thoải mái ios hướng dẫn

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 


#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController 
@property (weak, nonatomic) IBOutlet UITextField *txtUsername; 
@property (weak, nonatomic) IBOutlet UITextField *txtPassword; 
- (IBAction)loginClicked:(id)sender; 
- (IBAction)backgroundClick:(id)sender; 


@end 
+0

lỗi nào bạn đang gặp phải? –

Trả lời

9

Nếu bạn vừa mới bắt đầu, bạn nên chỉ enable ARC. Nó sẽ giúp bạn tiết kiệm rất nhiều đau đầu, và nó sẽ giải quyết vấn đề đó.

+3

Những người khác sẽ cho rằng mọi người chỉ mới bắt đầu nên tắt ARC để họ có thể tìm hiểu và hiểu rõ hơn về quản lý bộ nhớ. Sử dụng ARC dễ dàng hơn nhiều nhưng bạn không biết điều gì đang diễn ra. Cùng một đối số có thể được thực hiện để sử dụng IB so với thực hiện giao diện người dùng trong mã. IB làm cho một số thứ dễ dàng hơn, nhưng khi nó không hoạt động, bạn không biết phải làm gì. – rmaddy

+3

@rmaddy: Tôi đồng ý với bạn, mọi người và những người làm mới trong lĩnh vực CNTT (người mới) chọn lựa cho solutin đơn giản hơn là phức tạp. Và đây là một chủ đề thảo luận rộng lớn. Và không ai có thể thắng trong chủ đề này. –

+0

@rmaddy: Tôi có thể đồng ý, ngoại trừ ARC là một chiến thắng lớn trong rất nhiều trường hợp, nó sẽ quá dễ dàng cho một người mới bắt đầu làm rối tung 'bản lưu giữ' và 'phát hành'. ARC không giải phóng bạn khỏi phải đối phó với việc quản lý bộ nhớ, nhưng nó đề cập đến đủ thứ khó chịu (tự động) mà các lập trình viên có thể tập trung vào các vấn đề trong tầm tay. – nneonneo

20

Nếu bạn không sử dụng ARC, bạn không thể sử dụng weak. Đối với tài liệu tham khảo IBOutlet trong mã không phải ARC, thay thế các tham chiếu của bạn thành weak bằng retain. (Đó là một chút bối rối, nhưng nói chung bạn sử dụng assign hơn weak trong phi ARC mã, nhưng để tham khảo IBOutlet, bạn sử dụng retain.)

Hơn thế nữa, như nneonneo gợi ý, bạn nên sử dụng ARC.

+0

Tôi không chắc chắn về việc sử dụng giữ lại cho IBOutlet trên mã phi arc. Nếu bạn sử dụng IBOutlet cho các đối tượng được tạo trên XIB, bạn không có quyền sở hữu chúng, do đó bạn nên sử dụng gán. –

+0

@diogot Tôi không thông cảm với vị trí của bạn, nhưng Apple trước đây đã khuyên rằng 'giữ lại' đối với các cửa hàng trong mã trước ARC. Nó có thể là để tránh con trỏ lủng lẳng trong iOS 5.x và trước đó khi xem được phát hành. Tài liệu 'viewDidUnload' dường như củng cố thông điệp rằng đây là nơi mà một người được cho là sẽ phát hành một cửa hàng. – Rob

+0

Tôi đã khá chắc chắn về 'assign', nhưng tôi đã tìm kiếm xung quanh và thậm chí không tìm thấy một tài liệu chính thức mà tôi tìm thấy một số bằng chứng rằng' retain' nên được sử dụng thay thế. –

0

Bạn có thể đọc trang web này http://designthencode.com/scratch/ để bắt đầu học lập trình iOS.

Đây là phần giới thiệu rất tốt về nhiều yếu tố liên quan đến việc viết ứng dụng cho iPhone.

Tham khảo câu trả lời về lưu lượng truy cập ngăn xếp bên dưới này cho vấn đề của bạn với khai báo thuộc tính.

Properties and Instance Variables in Objective-C

+0

cảm ơn tuyệt vời :-) – Nik

Các vấn đề liên quan