Iphone 我可以从另一个视图传递/访问基本数据类型(float、double、int)吗?

Iphone 我可以从另一个视图传递/访问基本数据类型(float、double、int)吗?,iphone,objective-c,ios,cocoa-touch,Iphone,Objective C,Ios,Cocoa Touch,我有两类视图控制器 视图1 视图2 视图1 //这是一个大文件,但只显示所需的文件。 } //我没有声明任何属性,也没有合成它 视图2 在另一个视图中,我正在创建一个名为objView1的view1对象 但我无法访问对象视图1.double?为什么..您需要为每个ivar添加属性并合成它们。 然后您可以调用:objView1.x或objView1.y @property (nonatomic, assign) double y; 在我看来,在两个视图之间传递值是个坏主意。为此,您应该使用Vi

我有两类视图控制器

视图1

视图2 视图1 //这是一个大文件,但只显示所需的文件。
}

//我没有声明任何属性,也没有合成它


视图2

在另一个视图中,我正在创建一个名为objView1的view1对象


但我无法访问对象视图1.double?为什么..

您需要为每个ivar添加属性并合成它们。 然后您可以调用:
objView1.x
objView1.y

@property (nonatomic, assign) double y;

在我看来,在两个视图之间传递值是个坏主意。为此,您应该使用ViewController


此外,您应该通过创建getter(通过编写方法或通过声明ans合成属性)使vars可供其他对象访问。

不能为基元类型提供retain。但是你可以合成它们

你应该仔细阅读。特别是在.h文件中指定时可以提供的修饰符。但是,根据经验:

  • 对于要保留引用以使用
    retain
    的对象-这将对您提供的每个对象调用retain(它也将为您调用上一个对象的release!)

  • 对于基本数据类型,请使用
    赋值
    -这只会将变量设置为您给定的值:

    @property (nonatomic, assign) float myFloat;
    
  • 对于具有可变子类的对象,请使用
    copy

    @property (nonatomic, copy) NSString *myString;
    
    选项(3)主要用于NSString、NSData、NSURL、NSSet、NDictionary等 任何具有可变版本的内容(即NSString具有NSMutableString)

  • readonly
    如果您不希望任何人能够更改您的数据-这适用于指针和基本类型

    @property (nonatomic, readonly) double myDouble;
    @property (nonatomic, readonly) UIView *myView;
    

  • 他调用他的viewcontrollers view1和view2,因此他使用viewcontrollers。正确,您只能
    保留
    指针类型,但您可以
    分配
    它们。因为objView1.double是私有的。将其设置为@public,您就可以访问它。或者像其他人建议的那样添加属性。
    @property (nonatomic, copy) NSString *myString;
    
    @property (nonatomic, readonly) double myDouble;
    @property (nonatomic, readonly) UIView *myView;