我有静态变量:
static PaginationTableRestaurants *pagination;
在实施之后我做了:
pagination.next = 3;
NSLog(@"%@", pagination.next);// nil
它给我零,为什么?
答案 0 :(得分:1)
您从未初始化分页变量,根据您的代码判断。如果您尝试在nil实例上设置属性,则方法调用无法工作。
如果对您来说该变量是静态的,那么您可以通过这样的类方法来实现该行为。
+ (NSArray *)restaurants
{
static NSArray *_restaurants;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_restaurants = @[
@"Restaurant 1",
@"Restaurant 2",
@"Restaurant 3",
@"Restaurant 4",
@"Options"
];
});
return _restaurants;
}
现实情况是,您几乎肯定只是想声明一个属性并在以后初始化它。
@interface ViewController ()
@property (strong, nonatomic) NSArray *restaurants;
@end