2

私はかなり新しいCocoa/Objective-Cので、うまくいけば、何かが足りないだけです。これはかなり一般的な状況のようです。これはすべてMacアプリケーション用です。

私は持っています、NSTableViewそしてそれはデリゲートが実装します

-(NSView *)tableView:(NSTableView *)table viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row

-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView

私が抱えている問題は、列にロードしているデータが、Webサービスの非同期呼び出しとのデリゲートメソッドを介して収集されることですNSStreamDelegate。正しく設定するためのデータがまだないため、この時点で列ビューを返すことはできません。

次のコードを使用してみましたが、メインスレッド上にあるため、ときどきロックされているようです。

...
NSDate *loopUntil = [NSDate dateWithTimeIntervalSinceNow:0.1];
while (!callDone && [[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate:loopUntil])
    loopUntil = [NSDate dateWithTimeIntervalSinceNow:0.1];

return rslt;

他の誰かがこの状況に対処しなければなりませんでしたか?

ありがとう!

4

1 に答える 1

1

私はこれを試していませんが、空の配列 (またはデータを構造化するために必要なものは何でも辞書) を作成できるはずであり、アプリが最初に開いたときにテーブルビューは空になります (しかし、私はしませんクラッシュすると思います)。データがダウンロードされたら、それをその空の配列に追加し、テーブル ビューで reloadData を呼び出します。

于 2012-05-17T04:04:07.267 に答える