gpt4 book ai didi

iphone - 对核心数据对象使用与私有(private)框架对象相同的名称

转载 作者:行者123 更新时间:2023-12-03 21:11:24 26 4
gpt4 key购买 nike

我有一个适用于 iPhone 的基于核心数据的应用程序,但我收到以下警告:

objc[2472]: Class Property is implemented in both /System/Library/PrivateFrameworks/Notes.framework/Notes and /var/mobile/Applications/B69194FF-448F-48AD-A78D-DDB8935F/AmcCalc.app/AmcCalc. One of the two will be used. Which one is undefined.

当我开始使用 SDK 3.0 开发此应用程序时,我没有收到此错误,那么我该如何处理此错误?

谢谢!比约恩

最佳答案

这是命名冲突。

运行时绑定(bind)提供的灵 active 需要全局 namespace 。这意味着应用程序中任何符号的名称都可以与任何其他符号发生冲突。类属性的符号将类作为其内部名称的一部分,因此它们很少发生冲突。更常见的是,您有两个同名的类。

在本例中,应用程序源中的类与 Notes 框架中的类同名。如果我没记错错误格式的话,它很可能是一个名为“Property”的类。 (也可能是说您有一个类的属性被定义了两次。)

作为良好实践,您应该使用您的公司或个人特有的后缀或前缀来命名您的类。例如,如果您在 Bjorn Geez Software 下发布软件,则可以使用“BGS”。所以:

@interface PropertyBGS : ...//new style
@interface BGSProperty : ...//old style

更好的是,让您的类名称更具描述性,并避免任何与保留字或常见编程术语相关的名称。

例如,如果您正在编写一个房地产应用程序,您可能会想使用“Property”作为类的名称来对实际建筑物进行建模,但“property”本身会出现在代码中,因此您应该使用该名称更独特和更具描述性,例如:

@interface RealEstatePropertyBGS : ...//new style
@interface BGSRealEstateProperty : ...//old style

这不仅可以防止命名冲突,还可以使代码更具可读性和自记录性。

关于iphone - 对核心数据对象使用与私有(private)框架对象相同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3037973/

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