我想將我的JTCalendar的kJTCalendarDaySelected
設置爲等於可見的index.section
。如果索引爲0,我希望kJTCalendarDaySelected
設置爲1(本月的第一個月),如果索引爲1,我希望它設置爲2(本月的第2個月),依此類推。如何使用UITableView節索引作爲NSInteger?
當我嘗試這樣做,像這樣:
-(BOOL)whatSectionsAreVisible {
NSArray *visibleRowIndexes = [self.agendaTable indexPathsForVisibleRows];
for (NSIndexPath *index in visibleRowIndexes) {
self.daySection = index.section;
// Update views
[[NSNotificationCenter defaultCenter] postNotificationName:@"kJTCalendarDaySelected" object:self.daySection];
// Store currentDateSelected
[self.calendar setCurrentDateSelected:self.daySection];
NSLog(@"The visible section has an index of: %ld", (long)index.section);
if (index.section == 0) {
NSLog(@"index.row is indeed 0");
return YES;
}
}
return NO;
}
我得到以下錯誤:
implicit conversion of non-Objective-c pointer type 'NSInteger' (aka 'long') to 'id' is disallowed with ARC
我怎麼能轉換index.section的id設置爲一個NSInteger,可以用於這個目的?
使用'NSNumber * indexNumber = [NSNumber numberWithInteger:self.daySection]'並在通知對象中傳遞'indexNumber'。你可以通過'NSInteger daySectionIndex = [indexNumber integerValue]'來將它轉換爲整數。 – Akhilrajtr
要回答標題中的問題:節索引***是***'NSInteger',並且***不是指向對象的指針。 'postNotification'方法需要一個指針,顯然你的'setCurrentDateSelected'方法也需要一個指針。你的問題不清楚的是通知觀察者的對象類型和'setCurrentDateSelected'方法期望的類型。 – user3386109
...或者你可以使用現代拳擊語法:'... object:@(self.daySection)' –