2011-02-06 14 views
1

私がiPhoneアプリに取り組んでいますし、最新のXcode 4にアップグレードした後、私は次のエラーメッセージ受信:私はPropertyと呼ばれるコアデータオブジェクトを持っている、と私はこのエラーから理解重複クラス

GNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Thu Jan 27 08:34:47 UTC 2011) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "x86_64-apple-darwin".Attaching to process 3014. 
objc[3014]: Class Property is implemented in both /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/System/Library/PrivateFrameworks/Notes.framework/Notes and /Users/bschiff/Library/Application Support/iPhone Simulator/4.0.2/Applications/7D73796D-01B5-4F0E-A173-E45953945FD2/Versity.app/Versity. 
One of the two will be used. Which one is undefined. 

Propertyという名前のクラスがSDKの他の場所で宣言されているというメッセージが表示される

また、私はこの問題を解決するために適切方法はBSPropertyPropertyを変更したり、いくつかの代替名を使用するように私のコードのすべてをリファクタリングするだろうことを実現します。

は非常に大きい仕事であろうこと、そして私は、私は思ったんだけどそれを行う前に、私は Xcodeは私のアプリではなく、どこかに定義されています、他の一つに Propertyオブジェクトを使用することができます。これは可能ですか?

は、あなたが(PrivateFrameworks)文書化されていないクラスを発見したように見えますあなた

答えて

0

iPhoneSimulator4.0.sdk/System/Library/PrivateFrameworks/Notes.framework/Notesは、これがプライベートクラスであることを示しています。その場合、リファクタリングを行うことはできません。

2

ありがとうございます。残念ながら、私はあなたがリファクタリングする必要があると思います。

+0

+1「Message」というクラスを使用しているときには、これが自分自身に実行されました。その周りには道はない。 –

+0

いくつかのプログラマ、特にフレームワークの作成時には、頭文字でクラスにプレフィックスを付けるために、文書化されていない:-)コンベンションがあるようです。プロパティ、メッセージなど共通の動詞であるクラスの名前を検討する際に考慮するプラクティスとなるかもしれません。 – drekka

+0

+1合意。このようなことについては、私はあなたがそれを回避しようとは思わない。しかしXcodeのRefactor> Renameはあなたのための仕事のほとんどを行うはずです。 –