【问题标题】:Method never called?方法从未调用过?
【发布时间】:2013-01-20 02:16:43
【问题描述】:

我的标题

@interface WirelessController : UIViewController {
    Server *_server;
}
@property(nonatomic, retain) Server *server;

我的主要课程

@synthesize server = _server;
NSData *data = [@"Some encoded text." dataUsingEncoding:NSUTF8StringEncoding];
/* BOOL test = */ [self.server sendData:data error:nil];

我在 sendData 方法(在服务器类内部)设置了一个断点,但它从未被触发,并且 BOOL 测试返回 false。看起来好像那条线对设备来说是不可见的,并且没有运行或其他什么。

编辑: 我没有将 self.server 链接到最初分配的一个(恰好是 ivar)。我可以通过什么方式访问该 ivar?

【问题讨论】:

  • 美元兑换甜甜圈 bbum 是正确的,您的 server 值为零。在通话之前 NSLog 它。
  • @HotLicks 是的,你是对的。我需要从另一个类中获取 ivar _server 并使用它来调用 sendData
  • "我可以通过什么方式访问该 ivar?"在我看来,这是您需要问自己的问题。
  • @vectorquake,那么这两个类是如何连接的?是通过推送还是礼物?

标签: ios objective-c methods


【解决方案1】:

你是如何分配服务器的?

在某个地方,应该有一行类似于:

self.server = [[Server alloc] initWithURL:anURL]; // assuming ARC, so implied double retain matters not.

(显然,将 initWithURL: 和 Server 替换为您特定应用的详细信息。)


好的——所以你在其他类中有这个:

other.server = [[Server alloc] initWithProtocol:type];

(1) 确定正在执行?

(2) 在正在执行sendData:的代码中,在前面的行放一个assert(self.server);,然后再试一次(即检查是否为nil)。

【讨论】:

  • [[Server alloc] initWithProtocol:type] 在另一个类中
  • @vectorquake,你在哪里将 _server 设置为你分配的服务器实例?
猜你喜欢
  • 2011-07-19
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
  • 2020-01-02
  • 2011-01-30
相关资源
最近更新 更多