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アプリにするために改造したところ。
-
initNetworkCommunicationメソッド
そのままコピペしたら__bridge
が必要だと言われた。inputStream = (__bridge NSInputStream *)readStream; outputStream = (__bridge NSOutputStream *)writeStream;
-
joinChatメソッド
そのままコピペしたらinputNameField
が未定義だと言われた。ViewController.mの@implementation直下に以下を追加。@synthesize inputNameField;
-
joinChatメソッド
そのままコピペしたらinputNameField.text
なんて知らんと言われた。textをstringValueに変更。NSString *response = [NSString stringWithFormat:@"iam:%@", inputNameField.stringValue];
-
joinChatメソッド
Cocoaのためのビュー切り替えを追加。NSView* superview = [joinView superview]; [joinView removeFromSuperview]; [superview addSubview:chatView];
-
stream: handleEvent:メソッド
次のようにしろとXcodeに言われたので、素直に従った。NSLog(@"stream event %lu", (unsigned long)streamEvent);
-
stream: handleEvent:メソッド
ARCなので次を削除。[theStream release];
-
stream: handleEvent:メソッド
ここで用いられているNSStringへのバッファのデコードはよろしくないと、AppleのTSIに言われている。正しい方法を模索中。 -
messageReceivedメソッド
次を削除。NSIndexPath *topIndexPath = [NSIndexPath indexPathForRow:messages.count-1 inSection:0]; [self.tView scrollToRowAtIndexPath:topIndexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
-
tableView: cellForRowAtIndexPath:メソッド
iOS用なので削除。 -
numberOfSectionsInTableViewメソッド
iOS用なので削除。 -
tableView: numberOfRowsInSectionメソッド
iOS用なので削除。 -
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
この投稿へのコメント