[英]Class return NSMutabledata
I want to write a class which return NSMutableData, i have this code but couldn't manage how it return self.我想写一个返回 NSMutableData 的 class,我有这个代码但无法管理它如何返回自我。 any help would be great.
任何帮助都会很棒。
@interface ITumblr_QueryTumblr : NSMutableData {
NSURLConnection* connection;
NSMutableData* data;
}
-(void)loadImageFromURL:(NSURL*)url {
if (connection!=nil) { [connection release]; }
if (data!=nil) { [data release]; }
NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
-(void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)incrementalData {
if (data==nil) {
data = [[NSMutableData alloc] initWithCapacity:2048];
}
[data appendData:incrementalData];
}
-(void)connectionDidFinishLoading:(NSURLConnection*)theConnection {
[connection release];
connection=nil;
[data release];
data=nil;
}
A class doesn't return anything, though a method can.尽管方法可以,但 class 不会返回任何内容。 To have a method that returns data, use
要拥有返回数据的方法,请使用
-(NSMutableData *)returnSomeData {
return data;
}
Alternately, you can just call the property .data
from an instance of your class.或者,您可以只从 class 的实例中调用属性
.data
。
assuming that at your url you have a.plist file containing a dictionary, you will have to modify your connectionDidFinishLoading to something like this:假设在您的 url 中您有一个包含字典的.plist 文件,您必须将您的 connectionDidFinishLoading 修改为如下所示:
(void)connectionDidFinishLoading:(NSURLConnection*)theConnection {
[connection release]; connection=nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString *myFilePath = [documentsDirectoryPathstringByAppendingPathComponent:@"myfile.plist"];
[data writeToFile:myFilePath atomicaly:YES];
[data release]; data=nil;
return [NSMutableDictionary dictionaryWithContentsOfFile:myFilePath];
}
but this is a hard method, you should use:但这是一种很难的方法,您应该使用:
(id)dictionaryWithContentsOfURL:(NSURL *)aURL
because it saves you from the trouble因为它可以让你免于麻烦
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.