gpt4 book ai didi

Xcode 基础 : Declare custom class with integer properties and use it in another class

转载 作者:行者123 更新时间:2023-12-01 07:38:29 24 4
gpt4 key购买 nike

试图做一些非常简单的事情,但无法弄清楚语法。

我有一个名为 Word.h 的类,它有 8 个属性、字符串和整数。为了简单起见,我将在这里坚持使用 2:

#import <UIKit/UIKit.h>
@interface Word : NSObject
@property (nonatomic, strong) NSString *word;
@property (nonatomic, strong) NSNumber *wordLevel;
@end

两个属性都综合在.m文件中

然后我想在另一个文件 (UIViewController) 中创建一些对象。在 .h 文件中我有这个:

#import "Word.h"

在 .m 文件中,这是:

Word *newWord = [[Word alloc] init];
[newWord setWord:@"theorise"];
[newWord setWordLevel:6];

Word *newWord1 = [[Word alloc] init];
[newWord setWord:@"implicit"];
[newWord setWordLevel:7];

Word *newWord2 = [[Word alloc] init];
[newWord setWord:@"incredible"];
[newWord setWordLevel:9];

我现在收到一条错误消息“使用 ARC 不允许将‘int’隐式转换为‘NSNumber *’”

我做错了什么……类文件中的属性定义不正确吗??我如何访问此属性。它适用于字符串。

我还想稍后访问这些属性 - 我该怎么做...例如:

cell.label1.text = [newWord2 wordLevel];

这是正确的语法吗???

希望有人能帮助我,撕掉这里的头发!中号

最佳答案

您将 wordLevel 声明为一个 NSNumber,一个对象。您在代码中将其视为纯 C int。你必须决定你想要它是什么,并始终如一地对待它。例如,对于普通的 C int 属性,您应该改为声明:

@property (nonatomic, assign) int wordLevel;

另一方面,如果你真的想让 wordLevel 成为一个 NSNumber,你需要像这样使用 setter:

[newWord setWordLevel:[NSNumber numberWithInt:6]];

关于Xcode 基础 : Declare custom class with integer properties and use it in another class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11596307/

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