gpt4 book ai didi

objective-c - 我们可以为类对象使用 setvalue 和 forkey 属性吗?

转载 作者:行者123 更新时间:2023-11-28 17:44:23 25 4
gpt4 key购买 nike

我有一个名为“Book”的类,源代码如下:-

Book.h

#import <"UIKit/UIKit.h>


@interface Book : NSObject {

NSInteger bookID;
NSString *title; //Same name as the Entity Name.
NSString *author; //Same name as the Entity Name.
NSString *summary; //Same name as the Entity Name.

}

@property (nonatomic, readwrite) NSInteger bookID;

@property (nonatomic, retain) NSString *title;

@property (nonatomic, retain) NSString *author;

@property (nonatomic, retain) NSString *summary;

@end

Book.m

#import "Book.h"

@implementation Book

@synthesize title, author, summary, bookID;

-(void) dealloc {

[summary release];
[author release];
[title release];
[super dealloc];
}

@end

然后在另一个类中我可以写:-

Book *aBook = [[Book alloc]init];
[aBook setValue:currentElementValue forKey:elementName];

如果是那么为什么?因为在NSMutableDictionary中一般使用setvalue和forkey来存储数据..

最佳答案

基本上,键值编码旨在处理对象的属性。 Key-Value Coding Programming Guide从线条开始,

Key-value coding is a mechanism for accessing an object’s properties indirectly, using strings to identify properties, rather than through invocation of an accessor method or accessing them directly through instance variables. In essence, key-value coding defines the patterns and method signatures that your application’s accessor methods implement.

setObject:forKey:removeObjectForKey: 方法旨在与字典一起使用。您还可以使用 setValue:forKey: 方法将值设置到字典中。但是,您不能对类对象使用 setObject:forKey: 方法。

另一个区别是 setObject:forKey: 不接受 nil 作为值。相反,您应该使用 NSNull 作为值。但是 setValue:forKey: 接受 nil 并从字典中删除键,这样可以节省内存。

[如果我在某处有误,请有人纠正我!]

关于objective-c - 我们可以为类对象使用 setvalue 和 forkey 属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6788336/

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