一个大菜鸟需要帮助理解事物。
我在 NSMutableArray 中存储了三个 UIView
lanes = [[NSMutableArray arrayWithCapacity:3] retain];
- (void)registerLane:(Lane*)lane {
NSLog (@"registering lane:%i",lane);
[lanes addObject:lane];
}
在 NSLog 我看到:注册车道:89183264
NSLog (89183264) 中显示的值是我所追求的。我希望能够将该数字保存在一个变量中,以便能够在代码的其他地方重用它。
我能想到的最接近的是:
NSString *lane0 = [lanes objectAtIndex:0];
NSString *description0 = [lane0 description];
NSLog (@"description0:%@",description0);
问题是 description0 获取整个 UIView 对象,而不仅仅是单个数字(dec 89183264 是十六进制 0x550d420)
description0的内容:
description0:<Lane: 0x550d420; frame = (127 0; 66 460); alpha = 0.5; opaque = NO; autoresize = RM+BM; tag = 2; layer = <CALayer: 0x550d350>>
我不明白为什么我用 NSLog 如此容易地获得正确的十进制值,但似乎无法以任何其他方式将其从 NSMutableArray 中取出。我确信我在这里遗漏了一些“基本知识”,如果有人能花时间解释这里发生了什么,我将不胜感激,这样我终于可以继续前进了。这是漫长的一天学习。
为什么我不能通过以下方式轻松保存 89183264 号码:
NSInteger * mylane = lane.id;
or
NSInteger * mylane = lane;
谢谢你们