Kos*_*tas 2 memory-management objective-c
我使用以下代码来实例化视图SenderPlayerViewController并传递对象"session":
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState: GKPeerConnectionState)state {
switch (state) {
case GKPeerStateConnected:
NSLog(@"Connected Central");
if ([settings.playerType isEqualToString:@"SENDER"]){
SenderPlayerViewController *myViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"SenderPlayerViewController"];
[self.navigationController pushViewController:myViewController animated:YES];
myViewController.currentSession=session;
}
break;
case GKPeerStateDisconnected:
NSLog(@"Disconnected Central");
self.currentSession = nil;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
视图SenderPlayerViewController的头文件是:
@interface CentralViewController : UIViewController {
Settings *settings;}
@property (nonatomic, copy) GKSession *currentSession;
@end
Run Code Online (Sandbox Code Playgroud)
执行代码时,我收到以下错误:
[GKSession copyWithZone:]: unrecognized selector sent to instance 0x9661200
Run Code Online (Sandbox Code Playgroud)
你能帮忙吗?
提前致谢!
小智 6
@property (nonatomic, copy) GKSession *currentSession;
Run Code Online (Sandbox Code Playgroud)
是错的.GKSession不是可复制的对象.因此,您应该通过保留以下内容来获取对它的引用:
@property (nonatomic, retain) GKSession *currentSession;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |