小编Pet*_*sey的帖子

检测私有API的使用

我在App Store上被拒绝在我的应用程序中使用私有实例变量.我应该使用的ivars绝对不能在我的代码中访问,但我使用的是来自第三方的一个或两个静态库.我如何测试这些实际上是否真的是罪犯?

更新:

Apple指责我(和第三方库)在UITouch类中使用私有实例变量,包括

  • _locationInWindow
  • _tapCount
  • _previousLocationInWindow
  • _timestamp
  • _touchFlags
  • _相
  • _窗口

iphone debugging cocoa-touch objective-c

10
推荐指数
2
解决办法
1583
查看次数

根据计算值为计算值设置KVO

所以我有两个对象,Invoice和InvoiceLineItem.InvoiceLineItem具有一个名为的属性cost,它是基于其他属性动态创建的.为了帮助我使用KVO /绑定:

+ (NSSet *)keyPathsForValuesAffectingCost {
    return [NSSet setWithObjects:@"lineItemType", @"serviceCost", @"hourlyRate", @"timeInSeconds", @"productCost", @"quantityOfProduct", @"mileageCost", @"milesTraveled", nil];
}
Run Code Online (Sandbox Code Playgroud)

这非常有效.当我编辑像serivceCost这样的属性时,表视图中的主要成本更新.

在Invoice对象中,我有一个InvoiceLineItems的NSMutableArray.发票有一个类似的属性叫做totalCost.它是通过迭代订单项来计算的,只要订单项没有标记为已删除(我这样做是为了同步原因),就会增加成本并创建totalCost.

现在我的问题/问题.如何设置Invoice的totalCost,以便在其中一个订单项的费用发生变化时,它可以与KVO /绑定配合使用?

我尝试过设置:

+ (NSSet *)keyPathsForValuesAffectingTotalCost {
    return [NSSet setWithObjects:@"lineItems.cost", nil];
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我最终在控制台中出错:[<NSCFArray 0x1499ff40> addObserver:forKeyPath:options:context:] is not supported. Key path: cost

cocoa key-value-observing cocoa-bindings

9
推荐指数
1
解决办法
2222
查看次数

iPhone - 从照片访问位置信息

在iPhone应用程序中,是否有可能从用iPhone相机拍摄的照片中提取位置信息(地理编码,我想它的名字)?

如果没有API调用,是否有任何已知的方法来解析数据字节以提取信息?我可以自己滚动的东西?

iphone cocoa-touch geocoding geolocation

9
推荐指数
1
解决办法
9186
查看次数

如何在iPhone上使用滚动视图?

我想显示一个包含很多行的文本.我在滚动视图中添加了多行标签,但它没有显示任何内容.看起来这不是使用滚动视图的正确方法.如何使用滚动视图以便用户可以向下拖动以查看更多文本?

iphone cocoa-touch objective-c uiscrollview uikit

9
推荐指数
2
解决办法
4万
查看次数

适用于iphone的核心数据新手

我是iphone平台的新手,我正在创建一个应用程序来检索RSS源并将其显示在UITableView中.我已经完美地工作了(或者更确切地说,我想要的方式).我想的是我会将当前的Feed项目存储在手机上,这样它会在获得新的Feed时初始加载它存储的旧项目,然后解析新的feed并添加新项目并刷新TableView.我打算使用Core Data将旧的Feed项存储起来,因为这将是学习Core Data的一种好方法,它将适当地使用Core Data.但是,我很难学习如何使用Core Data并将其与Table/Array连接.

我已经谷歌搜索并查看stackoverflow的教程,但还没有找到任何解释它以我真正理解的方式.对于将Core Data添加到现有应用程序所需的整体步骤的任何解释都将非常感激.不需要完整的细节(但也很有用).我对SQL或以这种方式存储数据方面缺乏经验,并且无法解决Core Data的整个概念如何工作以及它如何连接到所有内容.

此外,任何更好的方法来做我想要完成的事情也将不胜感激.

iphone cocoa-touch core-data uitableview

9
推荐指数
1
解决办法
1468
查看次数

iPhone UISlider有两个拇指/指示器?

是否有人用两个拇指知道iPhone UISlider控件的版本?我需要一个允许指定一系列值的控件.UISlider API文档意味着标准控件无法实现这一点,所以我想知道是否有人为此提供了解决方案(或者自己已经解决了).

iphone cocoa-touch uikit

9
推荐指数
3
解决办法
1万
查看次数

UITableViewCell - 在重新排列控件旁边显示附件视图

在iPhone上的Safari书签管理器中,UITableView似乎有一些不标准的行为.我是指这个:

alt text http://cl.ly/b7f0faead6a8586d3470/content

在编辑模式下,书签UITableViewCells具有重新排列控件和UITableViewCellAccessoryDisclosureIndicator旁边的附件视图.你怎么两个都得到?在我的表格视图中,当您进入编辑模式以显示重新排列控件时,控件将取代附件视图,而不会同时显示两者.

iphone cocoa-touch objective-c uitableview ipad

9
推荐指数
1
解决办法
2434
查看次数

怎么做 - (CGRect)convertRect:(CGRect)rect toView:(UIView*)查看工作

我一直在使用这种方法,但从未真正了解它们的行为方式.

每当我尝试使用它们时,我发现自己在黑暗中探索,因为我尝试了不同的方面,它似乎永远不会按照我的期望去做.

为了争论,我试图转换我从UIKeyboard的通知中得到的帧.

在横向模式下,我得到了这个NSRect:

UIKeyboardFrameEndUserInfoKey = NSRect: {{406, 0}, {362, 1024}}
Run Code Online (Sandbox Code Playgroud)

现在我想将它转换为正确的矩形(交换x/y,宽度和高度),所以我这样做

CGRect compatibleRect = [self convertRect:[[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue] toView:nil];
Run Code Online (Sandbox Code Playgroud)

但是矩形成为:

compatibleRect = CGRect: {{406,406}, {362, 1024}}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激 :)

iphone cocoa-touch objective-c uikit ipad

9
推荐指数
1
解决办法
2万
查看次数

如何从上下文绘制的图像中获取CGImageRef?

好吧使用coregraphics,我正在构建一个稍后将用于CGContextClipToMask操作的图像.它看起来像下面这样:

    UIImage *eyes = [UIImage imageNamed:@"eyes"];
    UIImage *mouth = [UIImage imageNamed:@"mouth"];

    UIGraphicsBeginImageContext(CGSizeMake(150, 150));
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 0, 0, 0, 1);
    CGContextFillRect(context, bounds);
    [eyes drawInRect:bounds blendMode:kCGBlendModeMultiply alpha:1];
    [mouth drawInRect:bounds blendMode:kCGBlendModeMultiply alpha:1];

    // how can i now get a CGImageRef here to use in a masking operation?

    UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

现在,正如你在评论中看到的那样,我想知道我是如何实际使用我建立的图像的.我在这里使用核心图形而不仅仅是构建UIImage的原因是我正在创建的透明度非常重要.如果我只是从上下文中获取UIImage,当它被用作掩码时,它将仅适用于所有内容......更重要的是,使用此方法使用部分透明掩码会有任何问题吗?

cocoa-touch core-graphics mask uikit ios

9
推荐指数
1
解决办法
5305
查看次数

在iOS模拟器中测试SMS

是否可以在xcode的iPhone模拟器中打开消息编辑器界面?如果有人可以告诉我如何...我现在真的需要它并且很难找到解决方案我的代码如何以及为什么在模拟器上不起作用.感谢:D

xcode ios ios-simulator

9
推荐指数
2
解决办法
1万
查看次数