访问数组中对象的属性

jar*_*ryd 1 iphone objective-c

我有一系列对象,我可以将它们打印出来,所以我知道它们存在.

我遇到的问题是我无法访问对象的变量.

例如

// This prints out correctly
NSLog(@"asset frame in select mode is at index:%d is %@", i, [[AssetsSingleton sharedMySingleton].assetFrames objectAtIndex:i]);
Run Code Online (Sandbox Code Playgroud)

打印出来

选择模式下的资产帧位于索引处:0是资产:0x8087040; frame =(4 2; 75 75); layer = CALayer:0x808bd00 >>

我有一个资产的成员变量如下

UIImageView *overlayView;
BOOL selected;
id parent;
Run Code Online (Sandbox Code Playgroud)

问题是我无法访问这些例如overlayView使用

[[AssetsSingleton sharedMySingleton].assetFrames objectAtIndex:i].overlayView.hidden = TRUE;
Run Code Online (Sandbox Code Playgroud)

我如何访问这些成员?打印输出似乎表明该数组拥有资产.

Jon*_*pan 7

在使用其属性之前,将对象强制转换或赋值给变量:

Foo *foo = [myArray objectAtIndex:12345];
foo.bar = 67890;
Run Code Online (Sandbox Code Playgroud)

要么:

((Foo *)[myArray objectAtIndex:12345]).bar = 67890;
Run Code Online (Sandbox Code Playgroud)

只有在编译器知道对象的类型时,属性才可用.