0

Objective-CでClassstaticconstsを使用する方法を理解するのに苦労しているようです。

私はPHPのバックグラウンドを形成していますが、実際に私がやろうとしていることは、これと同等です。

MyObject.php

<?
class MyObject {

    const A_VALUE = 1;
    const ANOTHER_VALUE = 2;

}
?>

のように使用することができます

MyObject::A_VALUE

とクラス内のように

self::A_VALUE

Obj-Cでこの動作を再現したいのですが、構文がかなり異なることは理解しています。

Objective-Cで

私はそれがこれに似たものになるだろうと思った

MyObject.h

static int A_VALUE = 1;
static int ANOTHER_VALUE = 2;

@interface MyObject : NSObject;

これは技術的には機能しますが、未使用の変数について大量の警告をスローします

でも

MyObject.h

static NSString *A_VALUE = @"1";
static NSString *ANOTHER_VALUE = @"2";

@interface MyObject : NSObject;

これはエラーなしで機能します。どこにも使用されていないにもかかわらず。

ええと、私は大量の文字列を使いたくありません。これはまったく効率的ではないだけでなく(特にたくさんある場合)、コードを見て、たくさんの文字列を見るのが嫌いです。

if( [value isEqualToString:A_VALUE] ) {

ただ。キモい。もっと悪いかもしれませんが、ええと。を好む:

if( value == A_VALUE ) {

しかし、私が今持っているものは今はうまくいきますが、私は少し途方に暮れています。

consts(具体的にはint)を作成するObjectiveCの適切な方法は何ですか

みんな乾杯!

4

2 に答える 2

1

次のように整数定数を定義する必要があります。

static const NSInteger kYourConstString = 4;

そしてあなたの文字列のために:

static NSString *const kYourConstString = @"An example";

あなたの.mファイルで。このstaticキーワードは、変数のスコープをコンパイル ユニット (.m ファイル) に対してローカルにします。

于 2012-11-23T00:38:25.710 に答える
0

またはenumforint#definefor string を使用します。

于 2012-11-23T00:39:51.030 に答える