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