如何使用libSystem.B为iOS 3.1部署目标构buildXCode 4?

我最近从XCode 3升级到了4,现在我的iPhone项目出现了问题。 我需要将旧版本的iOS支持回3.1。 使用XCode 3.2.5,使用SDK 3.1的iOS部署目标,使用SDK 4.2构build没有问题。 我还在libSystem.B库中包含了一个弱链接,这是在较旧的iOS版本上运行应用程序所必需的。 现在,当我使用XCode 4构build时,出现下面的链接器错误。 编译步骤完成,但链接步骤失败。 如果我删除了libSystem.B库的弱链接,那么构build完成,但在iOS 3.1上运行时,应用程序崩溃。 有没有人find解决这个问题? 如何使用XCode 4构build,在旧版本的iOS上运行? ld: library not found for -lSystem.B collect2: ld returned 1 exit status Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

更改SegmentedControl上的NSFetchedResultsController更改

我有一个使用核心数据NSFetchedResultsController填充的UITableView 。 我现在已经添加了一个UISegmentedControl到视图,当你改变当前的段,我希望tableview的内容改变。 我已经在网上阅读,使用两个不同的NSFetchedResultsControllers是明智的,因为我可以从内置caching中受益。 唯一的问题是我似乎无法find任何示例代码做这个,不知道从哪里开始。 任何人都可以解释从哪里开始创build第二个NSFetchedResultsController并更改基于分段控件的tableview的来源? 查看标题代码: #import <CoreData/CoreData.h> @interface DomainViewController : UIViewController <NSFetchedResultsControllerDelegate, UITableViewDataSource, UITableViewDelegate> { UITableView *domainView; UISegmentedControl *segmentedControl; NSString *domain; } @property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController; @property (nonatomic, retain) NSManagedObjectContext *managedObjectContext; @property (nonatomic, retain) NSString *domain; @property (nonatomic, retain) IBOutlet UITableView *domainView; @property (nonatomic, retain) IBOutlet UISegmentedControl *segmentedControl; – (IBAction)segmentedControlIndexChanged; 查看执行代码: @interface […]

将parameter passing给Objective C中的JSON Web服务

我试图调用一个web服务方法,并传递给它一个参数。 这是我的web服务方法: [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public void GetHelloWorld() { Context.Response.Write("HelloWorld"); Context.Response.End(); } [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public void GetHelloWorldWithParam(string param) { Context.Response.Write("HelloWorld" + param); Context.Response.End(); } 这是我的目标C代码: NSString *urlString = @"http://localhost:8080/MyWebservice.asmx/GetHelloWorld"; NSURL *url = [NSURL URLWithString:urlString]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod: @"POST"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; NSError *errorReturned = nil; […]

iOS打印不允许UIPrintInteractionController出现

我正在为客户研究一个潜在的应用程序,我有一个问题,我无法find答案。 我想要做的是自动打印,而不显示UIPrintInteractionController 。 我应该做的重要一点是这不会是一个生产应用程序。 我知道,否则这可能会违反用户的隐私,只需在用户的同意下进行打印,但这又不会成为App Store上的公共应用程序。 我发现一个应用程序,似乎能够这个是Printer Pro 。 用户被提示打印一个testing页面,页面打印时不显示UIPrintInteractionController – 这个应用程序在商店,所以我假设有一个合法的方法来做到这一点。 任何人都知道这是如何做到的?

在快速按下xcode的时候播放声音的最佳方法是什么?

我有一个音板,它只是一个约8个button的屏幕。 每个单独的button都会有自己的声音,按下button后会播放。有几种方法可以播放声音,比如使用SystemSound或者AVAudioPlayer系统的声音到目前为止似乎有最快的响应时间,avaudioplayer非常慢,它如果用户非常快地按下button,不能跟上,我创造了一个audio播放器,每个声音都很混乱。 这是如何即时播放声音的.h文件 @interface MainScreenViewController : UIViewController <AVAudioPlayerDelegate, UITabBarControllerDelegate> { AVAudioPlayer *player; CFURLRef keNURL; SystemSoundID keNObject; //KE LOUD CFURLRef keLURL; SystemSoundID keLObject; //GE NORMAL CFURLRef geNURL; SystemSoundID geNObject; //GE LOUD CFURLRef geLURL; SystemSoundID geLObject; //NA NORMAL CFURLRef naNURL; SystemSoundID naNObject; //NA LOUD CFURLRef naLURL; SystemSoundID naLObject; //RA CFURLRef raURL; SystemSoundID raObject; //DAGGA CLICK CFURLRef daCURL; […]

如何在tablview中的行之间创build填充(间距)

这不是一个重复我阅读关于这个问题的其他问题,他们都没有给我我所需要的,我创build一个与自定义单元格的表视图和样式分组。 我有一个ImageView里面的每行都是小于整行。我需要创build多less个单元格是我从数据库中得到的东西,所以我不能使用静态单元格,我需要有行之间的间距,我不知道如何做这个。 我试图使更大的单元格(320,143),使其无形,我设法做,但当你按下图像外,它仍然像我压细胞这是我想达到 但是这是发生了什么事情: 我需要单元格的图像大小,但不同的行之间有间距。 我怎样才能做到这一点?

将NSString转换为uint8_t

我正在研究Apple提供的“证书,密钥和信任编程指南”中的数据encryption示例代码。 用于encryption/解密数据的示例代码考虑uint8_t。 然而,真实世界的应用程序会在NSString对象上这样做。 我一直在试图将NSString对象转换为uint8_t,但每次我得到编译器警告。 在各种论坛上给出的“几乎”相同的问题的解决scheme似乎并不适合我。

在iOS和OS X中获取系统范围通知的状态

我正在尝试写一个代码来处理iOS上的开/关屏幕(你可以看看类似的问题讨论这个问题)。 我为这个问题提供了OSX标签,因为OSX具有相同的系统范围通知function。 下面描述的问题是inheritance到通知设施(与iOS或OSX)。 有一个众所周知的方法来注册系统范围的通知com.apple.springboard.hasBlankedScreen在屏幕closures或打开时接收通知。 仅供参考(以下是用于注册系统范围通知的API): notify_post,notify_check_ notify_get_state和朋友 CFNotificationCenterPostNotification,CFNotificationCenterAddObserver和朋友 (内部使用notify_post等) 但是,这种方法存在两个相互关联的问题: 对于两个屏幕closures和通知的通知具有相同的名称(com.apple.springboard.hasBlankedScreen) 观察者没有收到状态作为通知的一部分。 因此,我们需要实现一些不同的屏幕打开和closures的解决scheme(因为相同的通知callback将被调用,并且没有参数将具有状态)。 一般来说,国家与通知callback脱钩的核心问题。 我看不出如何处理这个优雅。 我提出了两个简单的方法(每个都是有缺陷的)。 寻找另一种方法或改进这种方法的想法。 计数解决scheme 我们可以实施一个计数器来统计我们已经收到了多less通知,根据这些信息我们将知道是否通知打开或closures屏幕(基于我们的柜台的奇怪)。 但是,它有两个缺点: 1)在这种情况下,如果系统(由于devise时间的原因未知)将发送具有相同名称的附加通知,我们的逻辑将被拧紧,因为它会打破奇怪的检查。 2)另外,我们需要正确设置初始状态。 所以在代码中的某处我们会有这样的东西: counter = getInitialState(); registerForNotification(); 在这种情况下,我们有一个竞争条件。 如果系统会在getInitialState()之后发送通知并改变状态,但是在registerForNotification()之前,我们将以错误的计数器值结束。 如果我们会做以下代码: registerForNotification(); counter = getInitialState(); 在这种情况下,我们有另一种竞争条件。 如果系统发送通知并在我们做了registerForNotification()之后,但在getInitialState()之前改变状态,我们将得到一个计数器,将进入通知callback,并增加一个计数器(这会使其错误)。 确定通知收到解决scheme时的状态 在这种情况下,我们不存储任何计数器,而是在通知callback中使用API​​ notify_get_state来获取当前状态。 这有它自己的问题: 1)asynchronous传送到应用程序的通知。 所以,如果closures屏幕的速度非常快,您可以在屏幕已经打开的情况下收到两个通知。 所以,notify_check会得到一个当前的状态(相对于发送通知时的状态)。 因此,当应用程序将在通知callback中使用notify_get_state时,将确定有两个通知“屏幕已打开”,而不是一个通知“屏幕已closures”,另一个“屏幕已打开”。 PS一般来说,所有描述的问题都不是特定于屏幕开/关的情况。 它们对于具有独特状态并以相同的通知名称发送的任何系统范围的通知都是实际的。 更新1 我没有准确地testing开启/closures屏幕的情况,并且获得了notify_get_state()的相同结果。 然而,当我收到两个通知com.apple.springboard.lockstate (通过CFNotificationCenterAddObserver订阅)时,我有类似的情况,我使用另一个API来获取当前的设备locking状态,并收到两个通知相同的值。 所以这只是我的假设,notify_get_state也会返回相同的值。 不过,我认为这是受过教育的猜测。 notify_get_state的input参数对于两个调用是相同的(它不会改变)。 我不认为系统存储应该由notify_get_state返回的状态的FIFO队列。

像素格式,CVPixelBufferRefs和glReadPixels

我使用glReadPixels将数据读入CVPixelBufferRef 。 我使用CVPixelBufferRef作为CVPixelBufferRef的input。 不幸的是,像素格式似乎是不匹配的。 我认为glReadPixels正在返回RGBA格式的像素数据,而AVAssetWriter ARGB格式的像素数据。 将RGBA转换成ARGB的最佳方法是什么? 以下是我迄今为止所尝试的: 按照argb =(rgba >> 8)|的方式进行位操作 (rgba << 24) 使用CGImageRef作为中间步骤 位操作不起作用,因为CVPixelBufferRef似乎不支持下标。 CGImageRef中间步骤可以工作,但是我不希望有50多行代码可能会影响性能。

在UICollectionView中实现button点击

有没有一种方法可以从UICollectionViewCell的button获取button单击事件? 我用一个笔尖来填充集合视图,单元格有button,但是它的动作没有被调用。 我认为问题在于代表被调用。 我怎样才能解决这个问题? 我如何创build: 添加一个空的笔尖,创build一个集合视图单元格 添加了一个.h和.m文件,并创build了单元格笔尖的文件所有者 在class上写了一个动作。 将button连接到该操作 有什么办法可以得到这个动作吗? 我究竟做错了什么?