Tag: objective c

iPhone解压缩代码

真的停留在尝试编写代码来解压缩iPhone上的文件或目录。 以下是我正在使用的一些示例代码来尝试解压简单的文本文件。 它解压缩文件,但它的腐败。 (void)loadView { NSString *DOCUMENTS_FOLDER = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; NSString *path = [DOCUMENTS_FOLDER stringByAppendingPathComponent:@"sample.zip"]; NSString *unzipeddest = [DOCUMENTS_FOLDER stringByAppendingPathComponent:@"test.txt"]; gzFile file = gzopen([path UTF8String], "rb"); FILE *dest = fopen([unzipeddest UTF8String], "w"); unsigned char buffer[CHUNK]; int uncompressedLength = gzread(file, buffer, CHUNK); if(fwrite(buffer, 1, uncompressedLength, dest) != uncompressedLength || ferror(dest)) { NSLog(@"error writing data"); } else{ […]

使用NSPredicate筛选基于NSDictionary键的NSArray

我有一个字典arrays。 我想根据一个键过滤数组。 我试过这个: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == %@)", @"Football"]; NSArray *filteredArray = [data filteredArrayUsingPredicate:predicate]; 这不行,我没有结果。 我觉得我做错了什么。 我知道这是“体育”是伊娃的方法。 如果它是一个关键,我认为它可能是不同的。 但是我还没有find一个例子。 谢谢 更新 我在我正在search的string周围添加引号。 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == '%@')", @"Football"]; 它仍然不起作用。 更新2 解决了它。 我实际上已经删除了单引号,这似乎违背了指南的说法。 我真正的问题是我有一个嵌套的数组,我实际上没有评估字典。 骨头移动。

处理ARC中的指针指针所有权问题

假设对象A有一个属性: @property (nonatomic, strong) Foo * bar; 在实现中合成为: @synthesize bar = _bar; 对象B操纵一个Foo ** ,就像这个例子中来自对象A的调用: Foo * temp = self.bar; [objB doSomething:&temp]; self.bar = temp; 这个,或者类似的东西,可以合法地完成吗? 什么是doSomething:方法的正确声明? 此外,假设对象B可能会在我有机会设置bar属性之前解除分配(并因此承担temp指向的实例的所有权),那么我将如何告诉ARC交出拥有的引用? 换句话说,如果我想要下面的示例代码片段工作,我将如何处理ARC问题? Foo * temp = self.bar; // Give it a reference to some current value [objB doSomething:&temp]; // Let it modify the reference self.bar = nil; // […]

什么时候应该在 – (void)viewDidUnload而不是在-dealloc中释放对象?

什么是-(void)viewDidUnload是有益的? 难道我不能只放在-dealloc的一切? 如果视图没有卸载,那么不会-dealloc ?

电话号码格式

我有一个用户input数据的文本字段。 这是一个电话号码字段。 如果用户input1234567890 ,我希望用户input时显示为(123)-(456)-7890 。 这怎么可能?

Appceleratortitanium移动如何工作?

我正在使用Titanium Mobile 1.0构build一个iPhone应用程序,我发现它编译到本机iPhone二进制文件。 这个怎么用? 似乎要花费很多繁重的工作来分析JavaScript代码,并直接转换为Objective-C,而不需要像280 North Objective-J和Cappuccino这样的超级语言。

IOS 6强制设备方向为横向

我给了一个应用程序说10视图控制器。 我使用导航控制器加载/卸载它们。 除了一个以外,都是以肖像模式。 假设第七个VC在横向。 当它被加载时,我需要它在横向上呈现。 请build议一种方法来强制在iOS 6中从纵向到横向的方向 (在IOS 5中工作也是一件好事)。 这是我在 IOS 6 之前的工作方式 : – (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; UIViewController *c = [[[UIViewController alloc]init] autorelease]; [self presentModalViewController:c animated:NO]; [self dismissModalViewControllerAnimated:NO]; } – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation == UIInterfaceOrientationPortrait); } 呈现和解散模式风险投资者迫使应用程序审查其方向,所以shouldAutorotateToInterfaceOrientation被调用。 我已经在iOS 6中尝试过了: – (BOOL)shouldAutorotate{ return YES; } -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskLandscape; } – (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{ return UIInterfaceOrientationLandscapeLeft; } […]

了解NSRunLoop

任何人都可以解释什么是NSRunLoop ? 所以我知道NSRunLoop是一个与NSThread连接的东西吗? 所以假设我创build了一个线程 NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil]; [th start]; -(void) someMethod { NSLog(@"operation"); } 所以这个线程完成后,他的工作权利? 为什么使用RunLoops或在哪里使用? 从苹果文档我已经看了一些东西,但不清楚,所以请尽可能简单解释

Xcode 6和embedded式框架仅在iOS8中受支持

当在Xcode 6.0.1中使用embedded式框架(dyld)并且部署目标less于iOS 8时,我会得到: build立成功 运行时库加载错误 错误: dyld: Library not loaded: @rpath/ObjectiveLyricsTouch2.framework/ObjectiveLyricsTouch2 Referenced from: /private/var/mobile/Containers/Bundle/Application/DC65ACA9-98E5-46CD-95F8-829D3416F6C0/musiXmatch.app/musiXmatch Reason: image not found (lldb)

什么是AppDelegate和我怎么知道什么时候使用它?

我刚刚开始在iPhone应用程序上工作。 我怎么知道什么时候应该把东西放在AppDelegate和自定义的类中? 是否有像Python或PHP这样的使用类似AppDelegate模式的编程语言的规则或任何types的类比?