我有这个int我在我的.h文件中声明这样:
@interface searchResultsViewController : UIViewController {
int selectedEvent;
}
@property (nonatomic) int selectedEvent;
它保存表中的选定行。当用户点击该行时,int设置在此处:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.selectedEvent = [indexPath row];
}
然后在这里传递给这个方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"detailView"]) {
NSLog(@"%@", self.selectedEvent);
}
}
但是,在该方法中,NSLog返回null。我没有在文件的任何其他部分编辑int,我@synthesize
在文件的顶部。我不确定发生了什么,有人可以解释一下吗?
由于
答案 0 :(得分:4)
int
不是对象,因此当您使用%@
时,计算机会在int
所设置的内存地址处查找内容,并在找到时没有,返回null
。要记录int
使用%d
。像这样:
NSLog(@"%d", self.selectedEvent);
对象(%@
,NSString
,NSDictionary
等)的其他有效类型为NSArray
,%f
为double
, %u
的{{1}}等等。
更多信息here。