0

nilオブジェクトを使用すると、オブジェクトが有効でない場合に返すアクセサーを記述できます。

- (Weather *)howsTheWeather
{
    if (![WeatherNetwork isAvailable]) {
        return nil;
    }
    Weather *weatherNow = [WeatherNetwork getWeather];
    return weatherNow;
}

緯度と経度を保持するために a CLLocationCoordinate2D、 aでこれを行いたいと思います。struct私はこれを試しました:

- (CLLocationCoordinate2D)coordinate
{
    CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(self.latitude, self.longitude);
    if (!CLLocationCoordinate2DIsValid(coord)) {
        return nil;
    }
    return coord;
}

しかし、コンパイラは「互換性のない結果型 'CLLocationCoordinate2D' を持つ関数から 'void *' を返す」と文句を言います。

このような状況に対処する最善の方法は何ですか? 別のメソッドを書くことを考えていました-(BOOL)isLocationValid:(CLLocationCoordinate2D)coordinate。これに対処するより良い方法はありますか?

4

1 に答える 1

1

構造体を null にすることはできません。オプション 2 を使用する必要があります (構造体に含まれるデータに基づいて構造体の有効性を確認します)。あるいは、構造体を nil できる疑似オブジェクトでラップすることもできますがそれは偽りの利益のために多くの作業のようです。

于 2012-05-24T11:15:27.857 に答える