ios 将 self 分配给另一个类中的属性

Posted

技术标签:

【中文标题】ios 将 self 分配给另一个类中的属性【英文标题】:ios assign self to property in another class 【发布时间】:2013-08-19 20:21:44 【问题描述】:

我正在尝试使用 self 作为指向视图控制器的指针将 self 分配给另一个类(nsobject 类)中的属性,但该属性始终为零。你们中的任何人都知道为什么或如何解决?

viewcontroller.m

-(void)startToDoSomething:(NSString*)testToRun

    SecondClass *secondClass = [[SecondClass alloc] init];
    secondClass.viewController = self;
    [secondClass doSomething];

SecondClass.h:

NSObject 类:

.h 文件

#import "ViewController.h"

@class ViewController;

@interface SecondClass : NSObject

    ViewController *viewController;


@property (nonatomic,retain) ViewController *viewController;

【问题讨论】:

viewController 是如何在SecondClass 中声明/实现的? secondClass 被声明(#import secondClass),属性在 secondClass.h 中声明 我已经添加了 secondclass.h 内容 【参考方案1】:

你为什么不添加一个init方法:

-(id)initWithViewController:(ViewController *)aViewController

     self = [super init];

     if(self)
     
          self.viewController = aViewController;
     

     return self;

那你就这样称呼它

SecondClass *secondClass = [[SecondClass alloc] initWithViewController:self];

你也可以把属性改成(nonatomic, assign),把synthesize改成@synthesize viewController = _viewController

在 SecondClass 中使用 _viewController。

希望对你有帮助。

【讨论】:

以上是关于ios 将 self 分配给另一个类中的属性的主要内容,如果未能解决你的问题,请参考以下文章

使用 @dataclass 创建的类中的 Python 实例属性分配

将变量传递给另一个 JAVA 类中的主函数

如何将结构中的 void 指针分配给另一个结构?

将一个数组中的值分配给另一个数组而不循环

C#将一个类中的数值赋值给另一个类 两个相同类型的类,例如 Class c1; Clas

将字符串分配给另一个视图控制器中的文本字段