2012-01-25 2 views
2

Я пытаюсь сделать что-то, что, по моему мнению, будет относительно простым и получить текущий день недели, а затем сделать некоторые проверки против того дня, когда будут задействованы кнопки. чтобы получить день недели я использовал следующий код в моем методе viewDidLoad:Получение доступа к выводимому «NSInteger» в остальном моем коде

NSDate *today = [NSDate date]; 
NSCalendar *gregorian = [[NSCalendar alloc] 
         initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *weekdayComponents = 
[gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:today]; 
NSInteger day = [weekdayComponents day]; 
NSInteger weekday = [weekdayComponents weekday]; 

Код возвращает мне два NSIntegers которые текущий день недели и текущий день месяца, который является то, что Я хотел. Теперь я хочу иметь серию кнопок, которые при прослушивании отображают определенную веб-страницу в UIWebView в зависимости от дня недели.

Я надеялся сделать простой:

-(IBAction) btnClicked 
{ 
    if (weekday == 1) 
    { 
     //DO SOMETHING HERE 
    { 
} 

Но я не могу показаться, чтобы получить доступ к «будний день» NSInteger, который был создан в методе viewDidLoad. Я уверен, что мне не хватает чего-то очень простого. Любой совет?

ответ

4

Проблема заключается в том, что будний день выходит за рамки, когда вы пытаетесь использовать его в методе btnClicked. Попробуйте создать свойство для него в разделе интерфейса, как это:

@property (nonatomic, retain) NSInteger weekday; 

Тогда @synthesize в реализации

Или же просто добавить его в качестве переменной экземпляра:

@interface class : NSObject { 
    NSInteger weekday; 
} 
@end 
+0

+1 Дон» Не забывайте упоминать, что 'NSInteger weekday = [weekdayComponents weekday];' должен быть изменен на 'weekday = [weekdayComponents weekday];' – dasblinkenlight

+0

hhmm, это делает мне доступ к нему, но он создает множество предупреждений о сравнении между указателем и целым числом. Он также устанавливает значение NSInteger равным «0», что не подходит. –

+0

Извините, что NSInteger - это целое число вместо объекта. Я обновил свой код для соответствия. – danielbeard