我试图找出如何读取存储在Web服务器上的文本文件并在文本视图中显示内容。我已经关注了Apple网站NSURLConnection中有关如何建立NSURLConnection和receiveData以及显示接收数据的文档。
我创建了一个按钮,我想在按钮点击时加载文本视图。为此,我写了这个方法
- (void)loadWeb:(BOOL)animated
{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://nowayweb.com/mytext.txt"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];
NSURLConnection *myConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (myConnection) {
downloadedData = [[NSMutableData data] retain];
}
else{
NSLog(@"Error");
}
}
但我在.m文件中收到警告,可以在屏幕截图中看到,如下所示:
它工作正常,我可以在文本视图中查看文本,但我想知道我在哪里犯了错误。如果有人对此有所了解,那将会有所帮助。
或者是否有更好的方法通过按钮点击从Web加载内容。任何帮助表示赞赏。
由于
答案 0 :(得分:0)
ObjC的BOOL
不是真正的布尔类型。它是signed char
的typedef。
该方法的签名是:
- (void)loadWeb:(BOOL)animated
表达式[self loadWeb:self];
没有意义,并且它不是真正的bool
转换。编译器警告您正在将指针转换为signed char
。
它应该是:
[self loadWeb:YES];
-OR -
[self loadWeb:NO];
-OR -
BOOL someBOOLVariableOrParameter = ...; // YES or NO
[self loadWeb:someBOOLVariableOrParameter];
答案 1 :(得分:0)
self
是指向对象的指针,而不是BOOL值。你应该这样做:
[self loadWeb: YES];
除了你的方法似乎没有使用参数,所以你不妨摆脱它。
[self loadWeb];
和
- (void)loadWeb
{
// all the stuff inside
}
它对你起作用的原因是a)你没有使用参数,b)编译器会自动将self
转换为BOOL,方法是砍掉除指针之外的所有字节。如果你一直在使用这个参数,那么大部分时间它都是YES
偶然的,偶尔也会NO
。