0

アナライザーを実行したところ、コード内の行に関連付けることができない警告がいくつか見つかりました。どう対処したらいいのかわからない。それらをクリックすると、エディター内の適切なファイルが表示されますが、アナライザーの要約結果からそのことがわかります。これらのそれぞれが何を指しているのかわかりません。また、コードを1行ずつ実行するのは生産的ではありません(何を探しているのかわかりません)。

Object with +0 retain counts returned to caller where a +1 (owning) retain count is expected

Incorrect decrement of the reference count of an object that is not owned at this point by the caller

Object with +0 retain counts returned to caller where a +1 (owning) retain count is expected

Object sent -autorelease too many times

最後の警告として、自動リリースを削除しましたが、削除されましたが、returnステートメントで使用されているため、リリースする方法がわかりません。

- (Client*) createNewClient {
...
    Client *client = [NSEntityDescription insertNewObjectForEntityForName:@"Client"inManagedObjectContext:dataInterface.managedObjectContext];        
...
    return client;
}

一般的に、これらをどうすればよいですか?

4

2 に答える 2

0

これは、命名規則のフラグが立てられている可能性があります。自動解放されたオブジェクトを返したい場合は、名前を次のように変更してみてください。

- (Client *)clientWithCurrentContext
于 2011-04-29T15:07:44.780 に答える
0

によって返されるオブジェクトを所有してinsertNewObjectForEntityForName:いないため、解放する必要はありません。

Apple メモリ管理プログラミング ガイドから:

名前が「alloc」、「new」、「copy」、または「mutableCopy」で始まるメソッド (たとえば、alloc、newObject、または mutableCopy) を使用してオブジェクトを作成した場合、またはオブジェクトを送信した場合、オブジェクトの所有権を取得します。保持メッセージ。

insertNewObjectForEntityForName:「New」が含まれていますが、それで始まっていません。

于 2011-04-29T11:13:21.223 に答える