GVKun编程网logo

swift – 使用NSManagedObject的keyPathsForValuesAffecting(swift append)

13

如果您想了解swift–使用NSManagedObject的keyPathsForValuesAffecting的相关知识,那么本文是一篇不可错过的文章,我们将对swiftappend进行全面详尽的解

如果您想了解swift – 使用NSManagedObject的keyPathsForValuesAffecting的相关知识,那么本文是一篇不可错过的文章,我们将对swift append进行全面详尽的解释,并且为您提供关于Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏、Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望、Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数、ios – Swift 3发布后,Swift 2应用程序是否可以运行?的有价值的信息。

本文目录一览:

swift – 使用NSManagedObject的keyPathsForValuesAffecting(swift append)

swift – 使用NSManagedObject的keyPathsForValuesAffecting(swift append)

你好,
我想把一个客观的练习从Aaron的书翻译成快速但我无法找到解决方案. Objective’c代码是:

@dynamic firstName;
@dynamic lastName;
@dynamic department;

+ (NSSet *)keypathsForValuesAffectingFullName
{
    return [NSSet setWithObjects:@"firstName",@"lastName",nil];
}

- (Nsstring *)fullName
{
    Nsstring *first = [self firstName];
    Nsstring *last = [self lastName];
    if (!first)
        return last;
    if (!last)
        return first;
    return [Nsstring stringWithFormat:@"%@ %@",first,last];
}

我在开发人员文档中找到了一个函数,但我无法理解如何实现此代码.

更明确一点,这是Apple doc

To-one Relationships

要为一对一关系自动触发通知,您应该覆盖keypathsForValuesAffectingValueForKey:或者实现一个合适的方法,该方法遵循它为注册依赖键定义的模式.

例如,人的全名取决于名字和姓氏.返回全名的方法可以写成如下:

- (Nsstring *)fullName {
    return [Nsstring stringWithFormat:@"%@ %@",firstName,lastName];
}

当firstName或lastName属性发生更改时,必须通知观察fullName属性的应用程序,因为它们会影响属性的值.

一种解决方案是覆盖keypathsForValuesAffectingValueForKey:指定人员的fullName属性依赖于lastName和firstName属性.清单1显示了这种依赖的示例实现:

清单1 keypathsForValuesAffectingValueForKey的示例实现:

+ (NSSet *)keypathsForValuesAffectingValueForKey:(Nsstring *)key {

    NSSet *keypaths = [super keypathsForValuesAffectingValueForKey:key];

    if ([key isEqualToString:@"fullName"]) {
        NSArray *affectingKeys = @[@"lastName",@"firstName"];
        keypaths = [keypaths setByAddingObjectsFromArray:affectingKeys];
    }
    return keypaths;
}

class func keypathsForValuesAffectingValueForKey(_ key: String) -> NSSet

有人能告诉我如何在swift中实现这个功能吗?

感谢你们对我的帮助.

解决方法

我找到了解决问题的方法!
只需使用class覆盖func keypathsForValuesAffectingValueForKey(key:String)

这里的代码:

class Locataires: NSManagedobject {
@NSManaged var firstName: String
@NSManaged var lastName: String
var fullName: Nsstring {
    get {
 return firstName + lastName
    }
}

override class func keypathsForValuesAffectingValueForKey(key: String) -> NSSet {
    if key == «fullName « {
        let mesClefs = ["firstName","lastName"]
        return NSSet(array: mesClefs)
    }
    else {
        return super.keypathsForValuesAffectingValueForKey(key)
    }
}

谢谢您的帮助一月

Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏

Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏

Acer Swift 3是宏碁推出的笔记本电脑,具有轻薄时尚等元素,这里为大家带来 Acer Swift 3笔记本上手图赏 ,一起来看看。

14英寸1920*1080的显示屏幕、2.5GHz的英特尔酷睿酷睿i3、i5-7200u/i7处理器、图形128mb英特尔高清显卡620、8GB/256GB的SSD、Windows Hello、指纹识别器,处理速度快可媲美MacBook,售价仅为1398美元(约£1090/1760美元),性价比方面还是不错的。

以上就是 Acer Swift 3笔记本上手图赏 相关内容,希望对你有帮助。

Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望

Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望

总结

以上是小编为你收集整理的Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数

Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数

总结

以上是小编为你收集整理的Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

ios – Swift 3发布后,Swift 2应用程序是否可以运行?

ios – Swift 3发布后,Swift 2应用程序是否可以运行?

我发布了几个用 Swift 2.0和2.1编写的应用程序.现在Apple刚开源Swift并宣布Swift 3.0将于明年发布.在Swift 3.0发布后,我的应用程序仍然有用吗?

解决方法

我想你在这里问两个不同的问题.

>当Swift 3推出时,您的应用程序是否会在新操作系统上执行?
>推出时,您的应用会在新操作系统上运行吗?

关于第一个问题,是的,你的应用程序将执行,即使它是针对Swift 2编译的.Swift应用程序在其捆绑包中嵌入了Swift运行时库,因此您在这方面是安全的.您会注意到Swift捆绑包总是比Objective-C对应物大4-5 MB,这正是原因所在.

关于第二个问题,与任何新的操作系统版本一样,无法保证您的应用程序能够像以前版本的操作系统那样工作.虽然根据我的经验,Apple在过去的几个OS版本中做了相当不错的工作,尽管你的里程可能会有所不同.

关于swift – 使用NSManagedObject的keyPathsForValuesAffectingswift append的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Acer Swift 3笔记本怎么样 Acer Swift 3笔记本上手图赏、Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望、Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数、ios – Swift 3发布后,Swift 2应用程序是否可以运行?等相关内容,可以在本站寻找。

本文标签: