2012-06-12 33 views
6

Tôi gặp sự cố đã khiến tôi lo lắng một thời gian - đặc biệt là vì nó không có ý nghĩa với tôi.Không thể tìm thấy bất động sản trong lớp học chuyển tiếp

Xcode dường như không tìm thấy một số thuộc tính của đối tượng của tôi, mặc dù chúng được khai báo chính xác. Dưới đây một số mã:

file .h

@interface Start1ViewController : UIViewController { 
    NSString *updatedStatus; 
    NSString *updatedTime; 
} 
@property (retain, nonatomic) NSString *updatedTime; 
@property (retain, nonatomic) NSString *updatedStatus; 

và tổng hợp tương ứng trong .m

#import "Start1ViewController.h" 

@implementation Start1ViewController 
@synthesize updatedStatus, updatedTime; 

tôi muốn truy cập vào các thuộc tính từ một đối tượng giữ một thể hiện của lớp trên :

#import <UIKit/UIKit.h> 
@class Start1ViewController; 


@interface PartyPickerViewController : UIViewController { 

IBOutlet UIDatePicker *datePicker; 
Start1ViewController *start1ViewController; 
} 

.m

-(IBAction)buttonPressed:(id)sender{ 

NSDate *selected =[datePicker date]; 
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init]; 
[timeFormatter setDateFormat:@"HH:mm"]; 
NSString *dateString = [timeFormatter stringFromDate:selected]; 
[start1ViewController setUpdatedStatus:@"Party"]; 
[start1ViewController setUpdatedTime:dateString]; 
[self.navigationController popViewControllerAnimated:YES]; 
} 

Xcode cho tôi biết rằng setUpdatedStatus và setUpdatedTime không tồn tại..và chúng không hoạt động. Tôi đã thử sử dụng start1ViewController.updatedStatus = @ "Party"; thay vào đó, nhưng điều này sẽ không xây dựng ở tất cả nói rằng "tài sản updatedStatus không tìm thấy trên đối tượng của lớp Start1ViewController"

Tôi đã có vấn đề này trước và thời gian đó tôi bằng cách nào đó đã làm việc bằng cách chuyển đổi giữa sử dụng ký hiệu. sử dụng phương pháp setter một cách rõ ràng nhiều lần, nhưng ngay cả trong trường hợp khác mà nó đã làm việc tôi vẫn có cảnh báo cho các phương pháp và "tài sản không tìm thấy" khi sử dụng. chú thích

Các thuộc tính trong câu hỏi là NSStrings đơn giản, vì vậy tôi nghi ngờ rằng nó có thể là một vấn đề mà các lớp khác không biết về lớp NSString?

Cảm ơn trước sự giúp đỡ nào! =)

Trả lời

18

Bạn đã nhập Start1ViewController.h trong PartyPickerViewController.m? Vì khi bạn sử dụng trong giao diện @class, bạn chỉ cần thực hiện lời hứa với trình biên dịch là có một lớp được gọi là Start1ViewController. Nhưng sau đó bạn cần phải nhập Start1ViewController.h trong triển khai của mình để tạo ra các Start1ViewController.h, thuộc tính và phương thức của nó hiển thị với các lớp khác.

+0

Xin chào, cảm ơn rất nhiều! Không thể tin rằng tôi đã bỏ lỡ điều đó, đôi khi bạn đơn giản bị mù bằng cách nhìn vào mã của riêng bạn. Vẫn còn lạ mà tôi đã làm việc trong một phiên bản trước đó của các lớp mặc dù, nơi #import cũng bị thiếu –

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