我在调用已导入项目的外部文件中的方法时遇到问题。这些方法由于某种原因没有被调用,即使项目编译正常。并且控制台中没有错误消息/输出。
有人可以帮忙吗?这是完整的问题:
(1) 我下载了 by the author of this tutorial 编写的 Flickr API(4 个文件)并拖放到 Xcode 文件管理器中,指定将 4 个文件复制并链接到我的项目。
* Flickr.h
* Flickr.m
* FlickrPhoto.h
* FlickrPhoto.m
(2)在主视图 Controller 中,我先导入外部文件
#import "Flickr.h"
#import "FlickrPhoto.h"
(3) 然后我在@interface 部分定义一个属性来保存对象:
@property (weak, nonatomic) Flickr *flickr;
(4)在viewDidLoad中,我分配了一个新的对象实例:
self.flickr = [[Flickr alloc] init];
(5) 然后在后面的方法中,我调用了API中的一个方法:
[self.flickr searchFlickrForTerm:textField.text completionBlock:^(...) { ... }];
但是,该方法没有被调用:我在该方法调用之前放置了一个 NSLog 行,它会打印到控制台。我还在方法的第一行放了一个 NSLog:
- (void)searchFlickrForTerm...) term completionBlock: ...
它没有打印任何东西。
为什么这个方法没有被调用???!!!以前从未遇到过这个问题。真的很烦人。
Best Answer-推荐答案 strong>
尝试将您的属性更改为强而不是弱,看看是否能解决您的问题:
@property (strong, nonatomic) Flickr *flickr;
如果这样可以解决问题,那么问题是您的属性(property)在您能够使用之前就被释放了。您不会看到任何错误,因为“弱”属性可确保在对象被释放后将指针设置为 nil(并且 Objective-C 在向 nil 发送消息时不会抛出错误)。
关于iphone - 被调用的方法没有响应 - Xcode 4/objective-C c,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/13464410/
|