gpt4 book ai didi

objective-c - 我怎样才能让我的 setter 设置?

转载 作者:行者123 更新时间:2023-11-29 04:33:25 25 4
gpt4 key购买 nike

我正在尝试对我的 arrayWithCurrentLadder 属性进行延迟实例化,以便我的数组至少被分配和启动一次。然而,似乎我的 setter 从未真正被调用,因为当我尝试对数组中的对象执行操作时,什么也没有发生,所以我决定尝试使用 NSLog 数组中的对象来查找如果我得到一个实际值(我在该行代码旁边加了星号,以便您可以看到)并且调试器说 (null) ,所以我假设我的 setter 实际上没有设置。我在 setter 中添加了随机 NSLog 以便再次查看,但消息甚至没有显示在调试器中。为什么我的 setter 无法设置?

#import "LViewController.h"

@interface LViewController ()
@property (nonatomic) BOOL firstLadder;
@property (nonatomic, weak) NSMutableArray *arrayWithCurrentLadder;
@property (weak, nonatomic) IBOutlet UIView *playingView;//connects playingView to LViewController
@end

@implementation LViewController

@synthesize playingView = _playingView;
@synthesize firstLadder = _firstLadder;
@synthesize arrayWithCurrentLadder = _arrayWithCurrentLadder;

-(void)setArrayWithCurrentLadder:(NSMutableArray *)arrayWithCurrentLadder {
if(!_arrayWithCurrentLadder)
_arrayWithCurrentLadder = [NSMutableArray arrayWithCapacity:10];

NSLog(@"kgjfkjg");

_arrayWithCurrentLadder = arrayWithCurrentLadder;

NSLog(@"dkfjdk");

}

- (IBAction)buildLadder:(UIButton *)sender {
if (self.firstLadder) {

*******************************************************************************************
NSLog(@"%@", [[self.arrayWithCurrentLadder lastObject] frame].origin.x);
*******************************************************************************************

if (sender.frame.origin.x == [[self.arrayWithCurrentLadder lastObject] frame].origin.x) {
sender.backgroundColor = [UIColor redColor];
[self.arrayWithCurrentLadder addObject:sender];
}
}

}

- (IBAction)startingLadder:(UIButton *)sender {
if (!self.firstLadder) {
[self.arrayWithCurrentLadder addObject:sender];
}

sender.backgroundColor = [UIColor redColor];
self.firstLadder = YES;
}

@end

最佳答案

您应该重写 getter 而不是 setter:

- (NSMutableArray *)arrayWithCurrentLadder
{
if (nil == _arrayWithCurrentLadder) {
_arrayWithCurrentLadder = [[NSMutableArray arrayWithCapacity:10] retain];
}

return _arrayWithCurrentLadder;
}

关于objective-c - 我怎样才能让我的 setter 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com