Networking Tutorial for iOSの勉強で躓いたこと その2

Networking Tutorial for iOS: How To Create A Socket Based iPhone App and Serverを学ぶ上で躓いたことのメモ その2。

主にObjective-C関連のメモ。あとiOSではなくmacOSで動くCocoaアプリにするために改造したところ。

  1. initNetworkCommunicationメソッド
    そのままコピペしたら__bridgeが必要だと言われた。

    inputStream = (__bridge NSInputStream *)readStream;
    outputStream = (__bridge NSOutputStream *)writeStream;
  2. joinChatメソッド
    そのままコピペしたらinputNameFieldが未定義だと言われた。ViewController.mの@implementation直下に以下を追加。

    @synthesize inputNameField;
  3. joinChatメソッド
    そのままコピペしたらinputNameField.textなんて知らんと言われた。textをstringValueに変更。

    NSString *response  = [NSString stringWithFormat:@"iam:%@", inputNameField.stringValue];
  4. joinChatメソッド
    Cocoaのためのビュー切り替えを追加。

    NSView* superview = [joinView superview];
    [joinView removeFromSuperview];
    [superview addSubview:chatView];
  5. stream: handleEvent:メソッド
    次のようにしろとXcodeに言われたので、素直に従った。

    NSLog(@"stream event %lu", (unsigned long)streamEvent);
  6. stream: handleEvent:メソッド
    ARCなので次を削除。

    [theStream release];
  7. stream: handleEvent:メソッド
    ここで用いられているNSStringへのバッファのデコードはよろしくないと、AppleのTSIに言われている。正しい方法を模索中。
  8. messageReceivedメソッド
    次を削除。

    NSIndexPath *topIndexPath = [NSIndexPath indexPathForRow:messages.count-1 inSection:0];
    [self.tView scrollToRowAtIndexPath:topIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
  9. tableView: cellForRowAtIndexPath:メソッド
    iOS用なので削除。
  10. numberOfSectionsInTableViewメソッド
    iOS用なので削除。
  11. tableView: numberOfRowsInSectionメソッド
    iOS用なので削除。
  12. Table関連追加メソッド2個。

    - (id)tableView:(NSTableView *)tView objectValueForTableColumn: (NSTableColumn *)tableColumn row:(NSInteger)row {
    
        NSString *s = (NSString *) [messages objectAtIndex:row];
    
        return s;
    }
    - (NSInteger)numberOfRowsInTableView:(NSTableView *)tView {
    
        return messages.count;
    }

以上。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL