天道酬勤,学无止境

iphone

这是文档中的错误吗? -existingObjectWithID:error: 或 -objectWithID: 似乎声称不同的东西不匹配(Is this a bug in the documentation? -existingObjectWithID:error: or -objectWithID: seem to claim different things that don't match)

问题 从文档: -existingObjectWithID:error: 如果上下文中已经注册了具有给定 ID 的托管对象,则直接返回该对象; 否则,相应的对象将错误地放入上下文中。 如果数据未缓存,此方法可能会执行 I/O。 与 objectWithID: 不同,此方法从不返回错误。 嗯,这是悖论! 他们说 -existingObjectWithID:error: 可能会返回一个错误(“错误进入上下文”)。 同时,他们说 -objectWithID: 确实会返回错误,但 -existingObjectWithID:error: 不会。 那么现在是真的吗? 两种方法描述都讨论了返回故障对象。 有人可以澄清吗? 回答1 故障并不意味着“制造故障”。 它实际上意味着“创建一个完整的对象”与您期望的相反。 换句话说,有故障的对象不是故障。 命名法令人困惑。 它的出现源于旧 DB 时代的“触发故障”一词。 在那个术语中,您犯了一个错误,即对象的幽灵并“发射”了它,从而导致它加载其属性。 这从“触发错误”缩短为“错误”,天真的读者/听众会认为这意味着“制造错误”。 在培训中,我使用术语“ghost”作为错误的同义词,使用“实现”作为错误的同义词。 它有助于澄清术语,同时表达了我对史酷比的童年热爱。

2021-09-20 18:56:08    分类:技术分享    iphone   core-data

未调用 UIScrollView 内 UICollectionView 的 didSelectItemAtIndexPath(didSelectItemAtIndexPath of UICollectionView inside of a UIScrollView is not getting called)

问题 我在UIscrollview 中实现了不可滚动的 UICollectionView 。 滚动视图的大小为 100x100 ,集合视图的大小为 100x200 ; 滚动视图的内容大小为 100x200。 我的问题是,当我触摸某些单元格(100x100 矩形之外的单元格)时, didSelectItemAtIndexPath没有被调用。 启用单元格的用户交互。 当我增加等于集合视图高度的滚动视图高度时,所有单元格都是可触摸的。 提前致谢。 回答1 因为滚动视图重叠在单元格上......最好的方法是在 UIScrollView 上添加点击手势,例如, UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureAction:)]; [recognizer setNumberOfTapsRequired:1]; self.scrollViu.userInteractionEnabled = YES; [self.scrollViu addGestureRecognizer:recognizer]; 在 cellForItemAtIndexPath 方法和 Write 手势动作方法中添加以上代码,例如 -(void

2021-09-20 18:02:24    分类:技术分享    objective-c   iphone   uiscrollview   uicollectionview

如何在用户授予权限后以编程方式发送短信?(How to programmatically send a text message after the user has given permission?)

问题 我正在编写一个应用程序,我需要能够在后台发送文本。 我看到了对类似问题的这个非常全面的答案,该答案解释了如何通过与用户的界面发送短信以及以编程方式发送消息的各种限制,但它并没有真正解决另一种可能性:用户是否可以授予允许我的应用程序在后台发送消息类似于用户必须如何授予应用程序访问用户照片的权限? 例如,在第一次启动应用程序时,会出现一个提示,询问用户是否允许发送短信。 如果用户授予权限,则应用程序可以在后台发送消息。 那可能吗? 回答1 这个问题的答案是你不能。 有一些越狱应用程序可以实现这一点,但它们只需要越狱(和私有 API)。 没有 App Store 允许的方式来做到这一点。

2021-09-20 17:25:24    分类:技术分享    ios   objective-c   iphone   sms

iOS 4 是否让 3rd 方开发者可以使用“真正的多任务处理”?(Does iOS 4 make “Real Multitasking” available to 3rd party developers?)

问题 自从第一个测试版问世以来,我一直试图找出“真正的”多任务处理是否可能——即你能否将一个程序置于后台并无限期地挂在网络连接上? 例如,我正在考虑 IM 或 IRC 应用程序。 我自己在 iOS 4 上编译了一个应用程序,并且没有改变它似乎保持在后台运行的任何东西,但据我所知,它只是暂停到内存中。 文档说你能做的最好的事情是请求最多 10 分钟,但在开发者演示中,他们展示了 Skype 坐​​在后台然后通知用户有电话进来。有谁知道这一切是如何工作的? 回答1 看来答案是否定的。 Skype 的 API 是一种非常特殊的情况,称为“voip”模式,它需要特殊的行为,例如标记用于 VoIP 的套接字。 您可以在后台接收警报通知(例如时间过去)。 您处于后台运行状态的时间受到操作系统的严重限制。 Android 的后台模型是完整的,并且在很多方面都更好。 Apple 有一个名为“在您的应用程序中支持多任务处理”的指南,您应该可以找到它。 回答2 Apple 的 iOS 4 开发人员文档非常清楚地概述了这一切。 当您的应用程序关闭或关闭时,它几乎会立即“暂停”,这意味着操作系统会冻结应用程序的状态。 当用户切换回您的应用程序时,您的代码会继续在它停止的地方运行。 您无需向应用程序添加任何代码即可执行此操作,只需针对 OS 4 进行编译即可。 以上在大多数情况下都是正确的。 “暂停

2021-09-20 16:58:11    分类:技术分享    iphone   ios   ios4

有没有办法在 xcode 上使用 c++0x? 我想使用 gcc 4.4 或更高版本(is there a way to use c++0x at xcode? I want to use gcc 4.4 or greater)

问题 我想使用 gcc 4.4 或更高版本进行 iphone 开发。 有谁知道怎么做? 回答1 不,你没有。 相信我,你不会。 Apple 停留在 gcc 4.2.1,因为 4.2.2 及更高版本使用 GPLv3,这意味着他们必须放弃对平台的控制(对于 iphone sdk 来说是一个大问题)。 所以他们不升级。 对您来说不幸的是,由于自定义补丁、ABI 更改等,您也不能完全替换 gcc。 对不起。

2021-09-20 16:38:28    分类:技术分享    c++   iphone   xcode   c++11

如何检测三角形区域的触摸(How to detect touch in triangle area)

问题 对于我的应用程序,我需要将我的 iphone 屏幕对角线分成 4 部分并检测哪个部分被触摸。 我很困惑,因为我的区域是三角形而不是正方形,我找不到解决方案来检测哪个三角形被触摸了...... 我使用touchesBegan方法获得了触摸点,然后我被卡住了...... :(如何定义三角形形状并测试它是否被触摸?使用视图?层? 如果有人可以帮助我,那真的很酷。 回答1 给定矩形的宽度、高度和矩形中一个点的 x、y,您可以执行此操作... int s = y * width / height; int code = (x > s) + 2*(x > width - s); code 将是一个从 0 到 3 的数字,表示已选择哪个部分。 回答2 这个网站展示了一些算法来检查一个点是否在三角形内。 http://www.blackpawn.com/texts/pointinpoly/default.html 根据您的应用程序运行的速度,您可能希望预先计算并存储所有可能的 x 和 y 坐标的矩阵。 这个矩阵看起来像这样: point_inside[X][Y][三角形] 其中 X 和 Y 是屏幕中的坐标,“三角形”是指向该点应为哪个三角形的指针。

2021-09-20 16:10:22    分类:技术分享    iphone   cocoa-touch

如何调整 UIImageView 的大小以适应底层图像而不移动它?(How to resize a UIImageView to fit the underlying image without moving it?)

问题 我有一个 UIImageView,它的框架在图像加载之前设置,对于图像来说总是太大,所以当我尝试圆角时,例如,什么也没有发生。 如何调整框架的大小,使其与底层图像的大小相同,同时确保 UIImageView 的中心点不会改变? 回答1 如果您更改 UIView 的边界,则中心不会改变。 CGRect bounds; bounds.origin = CGPointZero; bounds.size = newImage.size; imageView.bounds = bounds; imageView.image = newImage; 回答2 尝试以下几行..未测试 CGSize imageSize = image.Size; CGPoint oldCenter = imageView.center; // now do some calculations to calculate the new frame size CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height); imageView.frame = rect; imageView.center = oldCenter;

2021-09-20 15:29:15    分类:技术分享    iphone   resize   uiimageview

范围滑块 WebService 调用(Range Slider WebService Call)

问题 我有双头滑块。 在滑块的更新值上,我们想调用 Web 服务。我想调用 min 和 max 最终值,但它们调用 path 中的每个值跟踪。我编辑此代码第一次工作,但在它们不起作用之后。 因为该方法是静态的一次。 是否有任何方法在方法调用时只调用一次。 - (void)report:(RangeSlider *)sender { NSString *rupee=@"\u20B9"; min=slider.min *1000; max=slider.max *1000; minValue =(int)min; maxValue =(int)max; NSString *report = [NSString stringWithFormat:@"%@ %d - %@ %d",rupee, (int)min,rupee, (int)max]; reportLabel.text = report; reportLabel.textColor =[UIColor whiteColor]; NSString *email= [[NSUserDefaults standardUserDefaults] stringForKey:@"token"]; NSString *ids= [[NSUserDefaults standardUserDefaults] stringForKey:@"id"]

2021-09-20 14:31:55    分类:技术分享    ios   objective-c   iphone

国际键盘定制?(international keyboard customized?)

问题 在 iphone sdk 3.0 中,他们提供了国际键盘选项。用户可以选择他想要的键盘。 但是我们如何本地化我们的应用程序。 例如,如果用户选择了法语键盘,我们应该用法语与他互动。 像警报和其他东西应该以法语显示。 我们如何以编程方式执行此操作?他们是否可以将字符串从英语转换为用户选择的语言? 请帮助我 回答1 在 iOS 4.2 及更高版本中,您可以使用UITextInputMode类来确定当前用于文本输入的主要语​​言。 [UITextInputMode currentInputMode].primaryLanguage会给你一个NSString代表 BCP 47 语言代码,如“es”、“en-US”或“fr-CA”。 您可以注册UITextInputCurrentInputModeDidChangeNotification以在当前输入模式更改时收到警报。 正如 Thomas Müller 所说,Internationalization Programming Topics 是一个很好的起点。 您可能还对“为中国和其他热门新市场准备好您的应用程序”WWDC 会议感兴趣。 回答2 查看 iPhone 开发中心上的国际化编程主题。 回答3 没有记录的方法可以知道键盘何时更改,也没有记录的方法来获取当前的键盘模式。 使用未记录的API

2021-09-20 14:12:09    分类:技术分享    iphone   iphone-softkeyboard

iPhone4 960x640 - 对应用程序的影响? [复制](iPhone4 960x640 - impact to apps? [duplicate])

问题 这个问题在这里已经有了答案: 11 年前关闭。 可能的重复: 如何适应 iPhone 4 不同的屏幕分辨率? 新分辨率对现有应用程序意味着什么? devtools 是否可以轻松支持新的分辨率而无需更改,如果是这样,如何? 那些没有正确利用这一点的开发人员的应用程序会发生什么? 应用商店中应用接受的解析合规性规则是什么? 回答1 新操作系统应该(正如史蒂夫乔布斯在主题演讲中所说)检测应用程序是否是为新资源构建的,并相应地进行扩展。 新分辨率只是旧分辨率的两倍,因此它应该是操作系统端的简单扩展。 一旦 iOS4 发布,所有当前的 UI 元素都将支持新的分辨率,因此开发人员所要做的就是更新他们的自定义图像。 回答2 根据最新 (2010-06-04) iPhone App Programming Guide.pdf 的第 75 页: 在具有高分辨率屏幕的设备上, imageNamed: 、 imageWithContentsOfFile:和initWithContentsOfFile:方法会自动查找名称中带有 @2x 修饰符的请求图像的版本。 如果找到一个,它会加载该图像。 如果您不提供给定图像的高分辨率版本,图像对象仍会加载标准分辨率图像(如果存在)并在绘图期间对其进行缩放。 加载图像时,UIImage 对象会根据图像文件的后缀自动将大小和缩放属性设置为适当的值。

2021-09-20 13:45:04    分类:技术分享    iphone   ios4