私がやりたいことは、Web サイトから設定を取得する (ストリーム キャプチャ) アプリのユーティリティ クラスを作成することだけです。他のファイルからシンプルに呼び出したい[RemoteConfig updateSettings];
私の目標は、リモート設定を取得するあらゆる状況でオブジェクトを作成せずに、このリモート構成ユーティリティを使用することです。
Objective C の static/class 変数とメソッドに関する情報は漠然としていて、非常に独断的です。しかし、それはおかしいようで、何かが間違っていると思います。
RemoteConfig.hは、 +(void) updateSettingsメソッドを宣言するだけです。
これは私のRemoteConfig.mです:
#import "RemoteConfig.h"
static NSMutableData* _configData;
static NSString* url = @"http://local.namehidden.com:90/json.html";
static int try;
@implementation RemoteConfig
+(void) updateSettings
{
NSString *identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
//Create URL request
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy: NSURLRequestReloadIgnoringCacheData
timeoutInterval: 10];
[request setHTTPMethod: @"POST"];
NSString *post = [NSString stringWithFormat:@"id=%@", identifier];
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:postData];
NSURLConnection* connection = [NSURLConnection connectionWithRequest:request
delegate:self];
[connection start];
}
///////////////////////////// DELEGATE METHODS ///////////////////////////////////
+(void)connection:(NSConnection*)conn didReceiveResponse:(NSURLResponse*)response
{
if (_configData == NULL) {
_configData = [[NSMutableData alloc] init];
}
[_configData setLength:0];
NSLog(@"didReceiveResponse: responseData length:(%d)", _configData.length);
}
/// and so on...
@interface/@implementation の上に C スタイルの変数を置いて、ファンキーに見えます。多くの人がプロパティを使用しようと言い、静的メソッド シングルトン トリックを行うと言う人もいます。シングルトンを処理する小さなライブラリを見てきましたが、これが私が見つけた最も簡単な解決策でした。
私の質問-
- これはことわざ的に悪いですか?
- これにはどのような制限がありますか?
- 代替案は何ですか、そして何が最善ですか?