Tag: Objective C

XCode 4“清洁”与“清洁生成文件夹”

您在每个应用程序的开发过程中都会遇到您在模拟器中看到的内容与您认为应该发生的内容不匹配的情况。 大多数情况下,这些都是人为错误,或者至less在我的大部分情况下都是如此 – 但是有时Xcode只是“迷失方向”,或者看起来如此。 我已经了解到, Clean (Shift + Cmd + K)和Clean Build Folder… (Option + Shift + Command + K)菜单选项可以显示错误或Xcode之间的区别。 我的问题是: Clean命令是干什么的, Clean Build Folder…存在的原因是什么? 我应该什么时候select一个,为什么不总是清理整个文件夹呢?

如何检测video文件是以纵向方式录制还是在iOS中横向录制

我正在使用AlAssetsGroup enumerateAssetsAtIndexes列出照片(相机)应用程序中的资产。 对于给定的video资源,我想确定它是以纵向还是横向模式拍摄的。 在下面的代码中,asset是一个AlAsset ,我已经testing过它是否是一个video资产[asset valueForProperty:ALAssetPropertyType]是AlAssetTypeVideo ,那么: int orientation = [[asset valueForProperty:ALAssetPropertyOrientation] intValue]; 在这种情况下, orientation始终为0,即ALAssetOrientationUp 。 也许这是可以预料的,所有的video都是正确的,但是一个纵向video在MPEG-4中被表示为一个90度的横向video(即所有的video实际上是横向的,如果你不尝试在Mac上的MediaInfo应用相信我)。 在文件内部和/或如何访问信息,告诉我实际上是以纵向方向握住手机时录制的? 考虑到资产的url,我也尝试了这一点: AVURLAsset *avAsset = [[AVURLAsset alloc] initWithURL:url options:nil]; CGSize size = [avAsset naturalSize]; NSLog(@"size.width = %f size.height = %f", size.width, size.height); CGAffineTransform txf = [avAsset preferredTransform]; NSLog(@"txf.a = %f txf.b = %f txf.c = %f txf.d = […]

自定义的UITableViewCellselect风格?

当我点击我的UITableViewCell ,背景部分(我的背景图片未覆盖的区域)变成蓝色,当我点击单元格时。 此外,单元格上的所有UILabel在点击时都会变成白色,这正是我想要的。 然而,我不想要的是蓝色背景,当我点击它,但如果我做的selectionstylenone ,然后我失去了单元格中UILabel的高亮颜色。 那么有没有什么办法可以在点击单元格的时候摆脱蓝色的背景,而保持UILabel的高亮颜色?

用AVPlayer播放MP3audio

我听到有关这方面的一些相互矛盾的报道。 我想要做的是从一个URLstream媒体文件。 我已经做了几个小时的研究,但是我找不到有关如何做这件事的好的指南,甚至找不到什么样的audio播放器。 有些朋友告诉我,AVPlayer可以播放MP3,但苹果文件说,它不能。 我倒了Matt Gallagher的audiostream式传输器(http://www.cocoawithlove.com/2008/09/streaming-and-playing-live-mp3-stream.html),但是那个代码很好,我已经足够新了,很难通过autoreleases和保留所有这一切。 我试图stream的audio是一个相当大的MP3文件从libsyn服务器,与格式的URL .. http://traffic.libsyn.com/podcastname/episode.mp3 所有我需要做的就是抓住它并开始玩,暂停和擦洗的能力。 所以首先,CAN AVPlayerstreamMP3的东西? 如果有的话,是否有人有指导或代码,他们可以指向我? 如果没有,有什么样的audio播放器类可以stream式audio? 我已经尝试创build一个AVPlayerItem,初始化的URL,然后将其添加到一个AVPlayer,但我得到了一吨错误加载…和符号未find…错误。 我会很感激这方面的任何信息,谢谢!

在iPhone上进行PDFsearch

两天后,试图从PDF阅读使用Quartz的注释,我设法做到了,并张贴我的代码 。 现在我想为另一个常见问题做同样的事情:用QuartzsearchPDF文档。 和以前一样的情况,这个问题已经被问了很多次,几乎没有实际的答案。 所以我首先需要一些指针,因为我自己还没有实现。 我试过的: 我尝试使用CGPDFScannerScan处理TJ和Tj操作符 – 在某些PDF上返回正确的文本,而在其他文档中,它返回的大部分是随机字母。 也许它与文本编码有关? 有人指出 ,文本块(由BT / ET运营商标记)应该被处理,但我仍然没有设法这样做。 任何人都设法从任何PDF中提取文本? 之后,通过将所有文本存储在NSMutableString并使用rangeOfString (如果有更好的方法请让我知道),search应该很容易。 但是如何突出结果呢? 我知道有几个操作符可以find字形的大小,所以我可以根据这些值计算结果矩形,但是我一直在阅读规范几个小时…这是一个臃肿的混乱,我疯了。 任何人有一个实际的解释? 更新 用户Naveen Thunga发现PDFKitten是“从iOS中提取PDF数据的框架”。 我只是试图演示,它似乎工作广告。 我会用更多的PDFtesting它,并且会很快发布结果。 作为一个侧面说明,代码似乎对我来说非常好 – 如果你对这个东西是如何工作感兴趣的话,那真是太棒了。

使用Objective C读取发布到设备控制台的日志消息

我的iOS应用程序如何从设备控制台日志中读取消息。 我想以编程方式阅读这些日志条目(如阅读文件?),select一些,并通过电子邮件发送给支持。 我知道一个iPhone应用程序可以让你查看日志。 它的名字是Console。 但是,我不知道他使用了什么类或API。 有人build议使用ASL函数来完成,但是我不知道它们是什么或者它们在哪里被logging。 我也知道使用NSLog的一些select,如NSLogger和CocoaLumberJack,但是我们还没有准备好在这个时候实现这些。 非常感谢您的帮助!

'+ entityForName:nil不是合法的NSManagedObjectContext参数 – 核心数据

我已经将所有相关代码添加到App Delegate中,并且可以将其添加到数据模型中,并从applicationDidFinishLaunchingWithOptions中的数据模型中获取。 我的问题是当我试图写入我的视图控制器中的数据模型。 我已经将这个代码添加到头文件中: NSFetchedResultsController *fetchedResultsController; NSManagedObjectContext *managedObjectContext; @property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController; @property (nonatomic, retain) NSManagedObjectContext *managedObjectContext; 而这个代码给我的实现文件: NSManagedObjectContext *context = [self managedObjectContext]; NSManagedObject *model = [NSEntityDescription insertNewObjectForEntityForName:@"Events" inManagedObjectContext:context]; [model setValue:@"Sample Event" forKey:@"eventName"]; NSError *error; if (![context save:&error]) { NSLog(@"Couldn't save: %@", [error localizedDescription]); } 但是,我得到以下错误: 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal […]

最后先进出栈与GCD?

我有一个UITableView显示图像与每一行中的联系人。 在某些情况下,这些图像在地址簿联系人图像的第一个显示中被读取,并且在没有一个的情况下,这些图像是基于存储的数据呈现的化身。 我目前正在使用GCD在后台线程上更新这些图像。 但是,这会按照请求的顺序加载图像,这意味着在快速滚动队列过程中会变得冗长,并且当用户停止滚动时,当前单元格将被更新。 在iPhone 4上,问题不是很明显,但我热衷于支持旧的硬件,并在iPhone 3G上进行testing。 延迟是可以忍受的,但相当明显。 这让我觉得后进先出栈似乎可以很大程度上解决这个问题,因为每当用户停止滚动这些单元格将是下一个被更新,然后当前在屏幕外的其他将被更新。 Grand Central Dispatch有这种可能吗? 或者执行一些其他方式不是太繁重? 请注意,顺便说一句,我正在使用核心数据与SQLite存储,我没有使用NSFetchedResultsController, 因为多对多的关系,必须遍历为了加载这个视图的数据。 (据我所知,这排除了使用NSFetchedResultsController。) [我发现一个NSFetchedResultsController可以使用多对多的关系,尽pipe官方文档似乎说。 但是我在这方面还没有用到。] 补充:只是要注意,虽然话题是“如何用GCD创build最后的先入栈”,但实际上我只是想解决上面提到的问题,可能有更好的办法。 我更愿意接受像蒂蒙托曼那样的解决以另一种方式概括的问题的build议。 如果这样的build议终于是我使用的,我会认识到最初的问题的最佳答案,以及我最终实现的最佳解决scheme… 🙂

在iOS中出现键盘时向上移动UIView

我有一个UIView,它不在UIScrollView里面。 我想在键盘出现时向上移动视图。 在我尝试使用这个解决scheme之前: 当键盘出现时,如何使UITextField向上移动? 。 这工作正常。 但是,在将数据插入到文本框之后,它将我带到另一个视图,当我回到此页面时,它只是跳跃,而我看不到我的文本字段。 有没有更好的解决scheme,对于这个问题? 提前致谢!

用xib创build一个可重用的UIView(并从storyboard中加载)

好的,在StackOverflow上有很多关于这个的post,但没有一个特别清楚解决scheme。 我想创build一个自定义的UIView与伴随的xib文件。 要求是: 没有单独的UIViewController – 一个完全独立的类 在课堂上的奥特莱斯让我设置/获取视图的属性 我目前的做法是: 覆盖-(id)initWithFrame: -(id)initWithFrame:(CGRect)frame { self = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil] objectAtIndex:0]; self.frame = frame; return self; } 使用-(id)initWithFrame:以编程方式实例化-(id)initWithFrame:在我的视图控制器中 MyCustomView *myCustomView = [[MyCustomView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; [self.view insertSubview:myCustomView atIndex:0]; 这工作正常(虽然从来没有调用[super init] ,只是设置对象使用加载的笔尖的内容似乎有点怀疑 – 有build议在这种情况下添加子视图也工作正常)。 不过,我希望能够从storyboard中实例化视图。 所以我可以: 在故事板的父视图中放置一个UIView 将其自定义类设置为MyCustomView 覆盖-(id)initWithCoder: – 我见过的代码最常用的模式如下: -(id)initWithCoder:(NSCoder *)aDecoder { self […]