положить Ивара в init

У меня есть два контроллера представления:BSViewController который содержит исходный иварnumber а такжеarray, а такжеBSotherViewController который в качестве цели должен получить ивары.В этом вопросе был представлен один из способов получения желаемого результата. Было предложено рассчитать значенияself.number а такжеself.array вinit который отменяет назначенныйinit как показано здесь.

- (id)init {

    if (self = [super init]) {
        //Set values
        NSArray*  _array = [NSArray arrayWithObjects: @"manny",@"moe",nil];
        self.array = _array;
        self.number = 25;
    }
    return self;
}

Но я нене знаю, как это решение позволяет вычислитьself.number или жеself.array в оригинальном методе (viewDidLoad); Я могу получить только 0 и ноль для их двух значений вviewDidLoad с любым подходом я пробовал.

Кроме того, следующая строка выдает предупреждение, котороеview неиспользуемая переменная

BSViewController *view = [[BSViewController alloc] init];

Поэтому я ищу подход, который сначала вычисляет мои иварыnumber а такжеarray а затем выполняетinit(WithNumber) так что те же переменные могут быть использованы в целевом классе.BSotherViewController

Я думал, что более прямой подход не будет использоватьсяinit, но вместо этого использовать что-то вроде следующегоinitWithNumber но я не могу заставить это работать со всеми требованиями ARC для использования подчеркивания и моим ограниченным пониманием цели-c.

- (id)initWithNumber:(NSInteger)number array:(NSArray *)array
{
    self = [super init];
    if (self) {
        _number = number;
        _array = array;
        return self;
    }
    return nil;
}

Для полноты я приведу ниже большую часть кода, который был создан в ответе на предыдущий вопрос.

BSViewController.h

#import 

@interface BSViewController : UIViewController{
   // NSInteger number;
}

@property (nonatomic) NSInteger number;
@property (nonatomic, weak) NSArray * array;
// - (id)initWithNumber:(NSInteger)number array:(NSArray *)array;
@end

BSViewController.m

#import "BSViewController.h"
@interface BSViewController ()
@end
@implementation BSViewController
@synthesize number;
@synthesize array;
/*
- (id)initWithNumber:(NSInteger)number array:(NSArray *)array
{
    self = [super init];
    if (self) {
        _number = number;
        _array = array;
        return self;
    }
    return nil;
}
*/
- (id)init {
    if (self = [super init]) {
        NSArray*  _array = [NSArray arrayWithObjects: @"manny",@"moe",nil];
        self.array = _array;
        self.number = 25;
    }
    return self;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"self: %@", self);
    BSViewController *view = [[BSViewController alloc] init];  //Warning issued: unused variable
    NSLog(@"self number: %d", self.number);
    NSLog(@"self array: %@", self.array);
}
@end

BSotherViewController.h

#import 
@class BSViewController;
@interface BSotherViewController : UIViewController
@property (strong, nonatomic) BSViewController *aview;
@end

BSotherViewController.m

#import "BSotherViewController.h"
#include "BSViewController.h"
@interface BSotherViewController ()
@end

@implementation BSotherViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
    }
    return self;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    BSViewController *aview = [[BSViewController alloc] init];
    NSLog(@"other view: %@", self.aview);
    NSLog(@"other number: %d", aview.number);
    NSLog(@"other array: %@", aview.array);
}
@end

Ответы на вопрос(1)

Ваш ответ на вопрос