1

だから私は使用しようとしていますAFNetworking私は2006年のMacbookでビルドしたいプロジェクトのRESTサービス用のライブラリです。 MacBookはSnow Leopardを搭載した2006年第1世代の32ビットCore Duoです。AFNetworking - この64ビットライブラリを32ビットアーキテクチャで簡単に使用できますか?

私はObjective-Cの開発にかなり新しいだと私はここにAFNetworkingを使い始めるためのチュートリアルを以下のよ:私の問題は、そのすぐに私は新しいプロジェクトを作成し、しようとしたときであるXcodeの4.2を使用してhttps://github.com/AFNetworking/AFNetworking/wiki/Getting-Started-with-AFNetworking

セマンティクスの問題 - 合成プロパティ 'ウィンドウ'は、互換性のあるivarと同じ名前であるか、明示的にivarという名前を指定する必要があります

私の新しいプロジェクトのビルド設定をチェックしましたが、xcodeはマシンが32ビットのとき、デフォルトで64ビットのインテルアーキテクチャを想定していますか?奇妙な。私はそれを32ビットに入れ替えました。これがエラーの原因です。

だから私は明示的に経由AppDelegateで自分のウィンドウインスタンスのVARを作成することによって、今、このセマンティック問題を修正することができます。私は32ビットにObjCのために構築する上でこれについて読ん

NSWindow * _window; 

Synthesizing a property without instance variablesを非常に一般的なようである(不足ivar宣言の)私が見る公共のgithubプロジェクトコードの多くで。誰もが私たちの上で64ビットを強制的に強制しているのでしょうか、あるいはインスタンスvarsを作成するのにあまりにも怠惰でしょうか? :(

だから私の問題は、私は私のプロジェクトにAFNetworking追加するとき、私はあちこち同じセマンティック発行IVARエラーが発生しますので、AFNetworkingライブラリは、64ビットのIntelのために建てられたように見えるということです。見てみますすべてのプロパティのインスタンス変数を手動で作成することでこの状況を修正することができますが、これは長期的な問題のために苦痛になるでしょう。

私がここで望んでいるのは、ある種のコンパイラフラグth私はワンショットでこれをすべて修正するだろうと私は追加することができますか?私は運が悪いと思っています。このMacBookをゴミ箱に入れて、新しいモダンなものをピックアップするだけの時間です。

答えて

2

インスタンス化されたインスタンス変数を自動的に合成するには、64ビットマシンでのみ使用できる "modern" Objective-Cランタイムが必要です。ですから、残念ながら、これを修正するためのコンパイラフラグを設定するだけでは問題はありません。この解決策は、実際に使用しようとしているクラスのプロパティのインスタンス変数宣言を追加することです。

あなたのコンピュータを捨てるのはとても難しいとは思いませんが...現代のランタイムによって提供される利便性は、開発者にとっては魅力的であり、あなたは新しい32ビットMacのサポートを維持している。 Appleは短期間で32ビットのIntel Macしか販売していませんでした.Lionは64ビットのMacを必要としています。そのため、32ビットMacを使用する人の割合は、すでにかなり小さく、急速に小さくなっています。

関連する問題