私はRayWenderlichサイトのチュートリアルに従っており、同じ名前で書き込み可能なnsarray読み取り専用配列とnsmutableble配列があるこのコードを理解しようとしています。また、_(アンダースコア)プロパティを使用する理由とプロパティを設定してself.xを使用する理由は何ですか?コードは次のとおりです:これはサイトからのものです
MatchmakingServer.h
@interface MatchmakingServer : NSObject <GKSessionDelegate>
@property (nonatomic, assign) int maxClients;
@property (nonatomic, strong, readonly) NSArray *connectedClients;
@property (nonatomic, strong, readonly) GKSession *session;
- (void)startAcceptingConnectionsForSessionID:(NSString *)sessionID;
@end
MatchmakingServer.m
#import "MatchmakingServer.h"
@implementation MatchmakingServer
{
NSMutableArray *_connectedClients;
}
@synthesize maxClients = _maxClients;
@synthesize session = _session;
- (void)startAcceptingConnectionsForSessionID:(NSString *)sessionID
{
_connectedClients = [NSMutableArray arrayWithCapacity:self.maxClients];
_session = [[GKSession alloc] initWithSessionID:sessionID displayName:nil sessionMode:GKSessionModeServer];
_session.delegate = self;
_session.available = YES;
}
私は代わりにこのようなことをしています
matchmakingserver.h
@interface zvMatchMakingServer : NSObject <GKSessionDelegate>
@property (nonatomic, assign) int maxClients;
@property (nonatomic, strong, readonly) NSArray *connectedClients;
@property (nonatomic, strong, readonly) GKSession *session;
- (void)startAcceptingConnectionsForSessionID:(NSString *)sessionID;
@end
matchmakingserver.m
@interface zvMatchMakingServer()
@property (nonatomic,strong) NSMutableArray *connectedClients;
@property (nonatomic, strong) GKSession *session;
@end
@implementation zvMatchMakingServer
-(NSArray *)connectedClients
{
return self.connectedClients;
}
-(void)startAcceptingConnectionsForSessionID:(NSString *)sessionID
{
self.connectedClients = [[NSMutableArray alloc]initWithCapacity:self.maxClients];
self.session = [[GKSession alloc]initWithSessionID:sessionID displayName:nil sessionMode:GKSessionModeServer];
}
私がやっていることは基本的に同じことです、さもないとうまくいきません。ありがとうございました!