gpt4 book ai didi

macos - 在 NSArrayController 的模型类中设置数组

转载 作者:行者123 更新时间:2023-12-03 17:23:18 25 4
gpt4 key购买 nike

如何使用 AppDelegate 类中 NSArrayController 的内容设置模型类 ValueItem 中的数组:

@interface AppDelegate : NSObject <NSApplicationDelegate>
{
ValueItem *vi;
}

和:

@implementation AppDelegate
{

ValueItem *array = [[ValueItem alloc]init];
[array setValueArray:[outArrayController arrangedObjects]];

NSArray *testArray2 = vi.valueArray; // !!!getter or setter doesn't work!!!
NSLog(@"test array 2 is:%@", testArray2);
}

NSLog 返回NULL。我在这里想念什么?(valueArray 使用 @property@synthesize 初始化)

ValueItem.h:

#import <Foundation/Foundation.h>
@interface ValueItem : NSObject
{
NSNumber *nomValue;
NSNumber *tolerancePlus;
NSNumber *toleranceMinus;
NSMutableArray *valueArray;
}
@property (readwrite, copy) NSNumber *nomValue;
@property (readwrite, copy) NSNumber *tolerancePlus;
@property (readwrite, copy) NSNumber *toleranceMinus;
@property (nonatomic, retain) NSMutableArray *valueArray;

@end

ValueItem.m:

#import "ValueItem.h"
@implementation ValueItem

@synthesize nomValue, tolerancePlus, toleranceMinus;
@synthesize valueArray;

-(NSString*)description
{
return [NSString stringWithFormat:@"nomValue is: %@ | tolerancePlus is: %@ | toleranceMinus is: %@", nomValue, tolerancePlus, toleranceMinus];

}
@end

最佳答案

解决方案:需要确保您正在处理 AppDelegate 的 vi 属性:

// We need to make sure we're manipulating the AppDelegate's vi property!
self.vi = [[ValueItem alloc]init];
[vi setValueArray:[outArrayController arrangedObjects]];

NSArray *testArray2 = vi.valueArray; // !!!getter or setter doesn't work!!!
NSLog(@"test array 2 is:%@", testArray2);
<小时/>

说明:在前两行中,您正在操作 array ValueItem 变量,然后尝试将 testArray2 设置为未初始化的 vi< 的值 ValueItem 变量。

// This is a new variable, unrelated to AppDelegate.vi
ValueItem *array = [[ValueItem alloc]init];
[array setValueArray:[outArrayController arrangedObjects]];

// Here, AppDelegate.vi hasn't been initialized, so valueArray *will* be null!
NSArray *testArray2 = vi.valueArray;
NSLog(@"test array 2 is:%@", testArray2);

关于macos - 在 NSArrayController 的模型类中设置数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636558/

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