Download de página Web de modo assincrono
Web page download asynchronous mode
// you have declared receivedData in your class
NSURLRequest *theRequest=[NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.census.gov/main/www/rss/popclocks.xml"]];
NSURLConnection *theConnection=[[NSURLConnection alloc]
initWithRequest:theRequest delegate:self];
if (theConnection) {
receivedData = [[NSMutableData data] retain];
} else {
// Inform the user that the connection failed.
}
// add these methods to the class
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
{
[receivedData setLength:0];
}
- (void)connection:(NSURLConnection *)connection
didReceiveData:(NSData *)data
{
[receivedData appendData:data];
}
- (void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error
{
[connection release];
[receivedData release];
NSLog(@"Connection failed! Error - %@ %@",
[error localizedDescription],
[[error userInfo] objectForKey:NSErrorFailingURLStringKey]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// received all data. do something
[connection release];
[receivedData release];
} |
// you have declared receivedData in your class
NSURLRequest *theRequest=[NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.census.gov/main/www/rss/popclocks.xml"]];
NSURLConnection *theConnection=[[NSURLConnection alloc]
initWithRequest:theRequest delegate:self];
if (theConnection) {
receivedData = [[NSMutableData data] retain];
} else {
// Inform the user that the connection failed.
}
// add these methods to the class
- (void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse *)response
{
[receivedData setLength:0];
}
- (void)connection:(NSURLConnection *)connection
didReceiveData:(NSData *)data
{
[receivedData appendData:data];
}
- (void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error
{
[connection release];
[receivedData release];
NSLog(@"Connection failed! Error - %@ %@",
[error localizedDescription],
[[error userInfo] objectForKey:NSErrorFailingURLStringKey]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// received all data. do something
[connection release];
[receivedData release];
}
Formatting number
[NSNumberFormatter localizedStringFromNumber:[NSNumber
numberWithUnsignedLongLong:myInteger]
numberStyle:kCFNumberFormatterDecimalStyle]; |
[NSNumberFormatter localizedStringFromNumber:[NSNumber
numberWithUnsignedLongLong:myInteger]
numberStyle:kCFNumberFormatterDecimalStyle];
Lendo um dicionário de um arquivo
Reading Dictionary from File
NSString* dataFilename = [[NSBundle mainBundle]
pathForResource:@"seufile" ofType:@"plist"];
mydict = [[NSDictionary alloc] initWithContentsOfFile:dataFilename]; |
NSString* dataFilename = [[NSBundle mainBundle]
pathForResource:@"seufile" ofType:@"plist"];
mydict = [[NSDictionary alloc] initWithContentsOfFile:dataFilename];
Writing to a plist file
Escrevendo num arquivo plist
[recordepts writeToFile:
[[NSBundle mainBundle]pathForResource:@"recorde"
ofType:@"plist"] atomically:YES]; |
[recordepts writeToFile:
[[NSBundle mainBundle]pathForResource:@"recorde"
ofType:@"plist"] atomically:YES];
Criando uma permutação aleatória
Creating a random permutation
-(NSArray*) scramble:(int)len {
NSMutableArray * a1 = [NSMutableArray arrayWithCapacity:len];
NSMutableArray * a2 = [NSMutableArray arrayWithCapacity:len];
for (int i = 0; i < len; i++) {
[a1 addObject:[NSNumber numberWithInt:i]];
}
for (int i = len; i > 0; i--) {
int num = arc4random() % i;
[a2 addObject:[a1 objectAtIndex:num]];
[a1 removeObjectAtIndex:num];
}
return a2;
} |
-(NSArray*) scramble:(int)len {
NSMutableArray * a1 = [NSMutableArray arrayWithCapacity:len];
NSMutableArray * a2 = [NSMutableArray arrayWithCapacity:len];
for (int i = 0; i < len; i++) {
[a1 addObject:[NSNumber numberWithInt:i]];
}
for (int i = len; i > 0; i--) {
int num = arc4random() % i;
[a2 addObject:[a1 objectAtIndex:num]];
[a1 removeObjectAtIndex:num];
}
return a2;
}
Human readable date diff
Sometimes you have to express date differences in a human readable way: “2 hours ago”, “yesterday”, etc. How to do this in Objective-C?
Here’s a nice solution
- (NSString *) dateToName:(NSDate*)dt withSec:(BOOL)sec {
NSLocale *locale = [NSLocale currentLocale];
NSTimeInterval tI = [[NSDate date] timeIntervalSinceDate:dt];
if (tI < 60) {
if (sec == NO) {
return NSLocalizedString(@"just now", @"");
}
return [NSString stringWithFormat:
NSLocalizedString(@"%d seconds ago", @""),(int)tI];
}
if (tI < 3600) {
return [NSString stringWithFormat:
NSLocalizedString(@"%d minutes ago", @""),(int)(tI/60)];
}
if (tI < 86400) {
return [NSString stringWithFormat:
NSLocalizedString(@"%d hours ago", @""),(int)tI/3600];
}
NSDateFormatter *relativeDateFormatter = [[NSDateFormatter alloc] init];
[relativeDateFormatter setTimeStyle:NSDateFormatterNoStyle];
[relativeDateFormatter setDateStyle:NSDateFormatterMediumStyle];
[relativeDateFormatter setDoesRelativeDateFormatting:YES];
[relativeDateFormatter setLocale:locale];
NSString * relativeFormattedString =
[relativeDateFormatter stringForObjectValue:dt];
return relativeFormattedString;
} |
- (NSString *) dateToName:(NSDate*)dt withSec:(BOOL)sec {
NSLocale *locale = [NSLocale currentLocale];
NSTimeInterval tI = [[NSDate date] timeIntervalSinceDate:dt];
if (tI < 60) {
if (sec == NO) {
return NSLocalizedString(@"just now", @"");
}
return [NSString stringWithFormat:
NSLocalizedString(@"%d seconds ago", @""),(int)tI];
}
if (tI < 3600) {
return [NSString stringWithFormat:
NSLocalizedString(@"%d minutes ago", @""),(int)(tI/60)];
}
if (tI < 86400) {
return [NSString stringWithFormat:
NSLocalizedString(@"%d hours ago", @""),(int)tI/3600];
}
NSDateFormatter *relativeDateFormatter = [[NSDateFormatter alloc] init];
[relativeDateFormatter setTimeStyle:NSDateFormatterNoStyle];
[relativeDateFormatter setDateStyle:NSDateFormatterMediumStyle];
[relativeDateFormatter setDoesRelativeDateFormatting:YES];
[relativeDateFormatter setLocale:locale];
NSString * relativeFormattedString =
[relativeDateFormatter stringForObjectValue:dt];
return relativeFormattedString;
}
Usando o clipboard
Using Clipboard
http://www.mobileorchard.com/new-in-iphone-30-tutorial-series-part-3-copy-paste-with-uipasteboard/
Um comentário em “Dicas Objective-C”