Я пытаюсь передать объект с помощью Singleton, но когда я его распечатаю в новом ViewController, он дает мне (null). Когда i NSLog optionsSingle в Viewcontroller1, он распечатывает объект.Singleton Return (null)
Viewcontroller1.h
@interface PrivateViewController : UIViewController<UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate>
{
rowNumber *optionsSingle;
}
Viewcontroller1.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
optionsSingle = [rowNumber singleObj];
optionsSingle = [devices objectAtIndex:indexPath.row];
}
Viewcontroller2.h
@interface SelectVideo : UITableViewController<NSFetchedResultsControllerDelegate>
{
rowNumber *optionsSingle;
}
Viewcontroller2.m
- (void)viewDidLoad
{
[super viewDidLoad];
optionsSingle=[rowNumber singleObj];
NSLog(@"%@", [NSString stringWithFormat:@"%@", optionsSingle.selectedRowNow]);
}
row.h
@interface rowNumber : NSObject
{
NSMutableArray *selectedRowNow;
}
@property (nonatomic) NSMutableArray *selectedRowNow;
+(rowNumber *)singleObj;
@end
row.m
@implementation rowNumber
{
rowNumber *anotherSingle;
}
@synthesize selectedRowNow;
+(rowNumber *)singleObj
{
static rowNumber * single=nil;
@synchronized(self) {
if(!single) {
single = [[rowNumber alloc] init];
}
}
return single;
}
@end
По названиям классов классов начинаются с заглавной буквы. Имена файлов класса такие же, как имя класса, где это возможно. Это предотвращает путаницу и позволяет другим более легко понять другие коды. – zaph
Я сомневаюсь, что это использование синглета является оправданным. В основном Singletons следует использовать очень экономно, а не только для передачи значения между объектами. – zaph