- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是另一个初学者,试图了解 Cocoa 及其复杂性。我正在读德沃的《Objective-C》。在键值编码部分中有一些 setValue:forKeyPath:
的示例。不知何故,尽我所能,我无法让它工作。
代码如下:
// Bar.h
// UsingKVC
//
// Created by Stephen Ng on 2/04/12.
// Copyright (c) 2012 Nutek. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Bar : NSObject
{
NSArray *array;
NSString *stringOnBar;
}
@property (retain,nonatomic) NSArray *array;
@property (retain,nonatomic) NSString *stringOnBar;
@end
@interface Foo : NSObject
{
Bar *bar;
NSString *stringOnFoo;
}
@property (retain,nonatomic) Bar *bar;
@property (retain,nonatomic) NSString *stringOnFoo;
@end
//
// Bar.m
// UsingKVC
//
// Created by Stephen Ng on 2/04/12.
// Copyright (c) 2012 Nutek. All rights reserved.
//
#import "Bar.h"
@implementation Bar
@synthesize array;
@synthesize stringOnBar;
@end
@implementation Foo
@synthesize bar;
@synthesize stringOnFoo;
@end
//
// main.m
// UsingKVC
//
// Created by Stephen Ng on 2/04/12.
// Copyright (c) 2012 Nutek. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Bar.h"
int main (int argc, const char * argv[])
{
@autoreleasepool {
Foo *foo = [[Foo alloc] init];
[foo setValue:@"blah blah" forKey:@"stringOnFoo"];
NSString *string = [foo valueForKey:@"stringOnFoo"];
NSLog(@"string: %@", string);
[foo setValue:@"The quick brown fox" forKeyPath:@"bar.stringOnBar"];
NSString *string2 = [foo valueForKeyPath:@"bar.stringOnBar"];
NSLog(@"string2: %@",string2);
}
return 0;
}
<小时/>
字符串2为空!
我不明白这个。据我了解,当使用 @property
时,所有代码都将变得符合 KVC 标准。但似乎关键路径不起作用。
最佳答案
foo.bar
为 nil(您尚未为 bar
设置值),因此您的 KVC 访问器将默默失败或返回 nil - 键路径消息的值本质上被分解为单独的访问器,如果路径上的任何内容不存在,则路径不完整。
创建一个新的 Bar 对象并将其分配给 foo.bar
,然后您的关键路径代码将起作用。
关于cocoa - 如何使用setValue :forKeyPath and valueForKeyPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9987653/
我在互联网上找到了一些 Mapkit 代码,如下所示: - (void)recenterMap { NSArray *coordinates = [self.mapView valueForKeyPa
动物类定义: @property (nonatomic, strong) NSString *food; 猫类定义: @property (nonatomic, copy) NSString *nam
我有以下 Objective-C 类: @interface GraphDataPoint : NSObject @property NSDate *date; @property NSNumber
我正在解析这个 json: { "destination_addresses" : [ "Göteborg, Sverige" ], "origin_addresses" : [ "Stockholm
我是另一个初学者,试图了解 Cocoa 及其复杂性。我正在读德沃的《Objective-C》。在键值编码部分中有一些 setValue:forKeyPath: 的示例。不知何故,尽我所能,我无法让它工
最近我在一个项目中更改了一些核心数据模型。迁移进行得很顺利,但我在对键路径进行查找的对象上有一些包装器(即:valueForKeyPath:@"@sum.somePropertyThatNoLonge
在数组操作下the Realm NSPredicate cheatsheet它表明我们可以通过 NSPredicate 进行针对 List 中特定元素的查询。但是,当我尝试以下操作时,总是出现“不支持
Printing description of self->data: { root = { participant = (
我有功能 func findObjectInArray(array: [AnyObject], field: String?, fieldValue: AnyObject, startFromTheB
我在 objective c 中的旧函数是 + (NSUInteger)getNumberOfDistinctUsers:(NSArray *)users { NSArray* usersAfterP
我正在寻找其他堆栈溢出问题,但似乎它不适用于我的情况。 我正在制作 YouTube 应用,我的代码如下。 if let JSON = response.result.value as? NS
我正在解析如下所示的 JSON: {"data":{"items":{"daily":{"2013-07-31":16}}}} 我已经构建了一个日期字符串。例如: NSDateFormatter *f
我在使用 valueForKeyPath 时遇到问题,这里是我获取 dataVersion 值的方式,它运行良好: Alamofire.request(.GET, "https://www.amaz
这是一个相当简短的问题,但我对如何解决它有点困惑。 for item in filteredAndSortedDates { print(item.datesSectionHeader())
有什么方法可以使用 valueForKeyPath 访问 NSArray 元素?例如,谷歌的反向地理编码服务返回一个非常复杂的数据结构。如果我想获取城市,现在我必须将其分成两个调用,如下所示: NSD
我有一个核心数据项目,其中包含一种“主”实体,该实体保存年份值(int 16)和一些其他值。还有一些其他“子”实体与该主机具有多对一的关系。在其他实体之一中,我想设置几个默认值,即开始日期和结束日期。
目前我正在尝试寻找一种紧凑的方法来平均矩阵。显而易见的解决方案是对矩阵求和,然后除以元素数。然而,我在苹果开发者网站上遇到了一种方法,该方法声称可以使用 valueForKeyPath 以更简单的方式
我有一个 id 类型的对象,想知道它是否包含给定 keyPath 的值: [myObject valueForKeyPath:myKeyPath]; 现在,我将它包装到一个 @try{ } @catc
我花了几个小时来调试这个问题,因此发布这个,以防你有专家建议/线索。 这是问题所在的代码: NSString *filePath = [[NSBundle mainBundle] pathForRes
我将时间段存储在核心数据中。每个时间段都有一个DateTime名为 EndDate 的属性。我正在尝试获取最大结束日期,该日期在指定日期 ( < ) 之前。 这就是我使用子查询和 ValueForKe
我是一名优秀的程序员,十分优秀!