Tag: iphone

在Objective-C中,实例variables是否默认设置为零?

我正在整理一些内存问题与我的iPhone应用程序,我刚刚考虑一些基本知识。 如果我设置了一个ivar,并且永远不会在我的对象的生命周期中使用它,当我调用dealloc时,会导致一个问题吗? 例如 @interface testClass { id myobject; } @property (nonatomic, retain) id myobject; @end @implementation testClass @synthesize myobject; – (id)init { … // Do I have to set myobject to nil here? // So if myobject isn't used the dealloc call to nil // will be okay? Or can you release the variable without […]

如何将可变parameter passing给另一个方法?

我GOOGLE了,并知道如何使用可变参数。 但我想通过我的可变参数到另一种方法。 即时通讯错误。 怎么做 ? -(void) aMethod:(NSString *) a, … { [self anotherMethod:a]; // im doing this but getting error. how to pass complete vararg to anotherMethod }

UIScrollView与居中的UIImageView,如照片应用程序

我想用图像内容视图滚动视图。 图像实际上是比屏幕大得多的地图。 地图应该最初位于滚动视图的中心,比如当您将iPhone转为横向时,照片应用中的照片。 我没有设法在正确的缩放和滚动中心的地图。 假设地图图像从屏幕的顶部开始(纵向),代码如下所示: – (void)loadView { mapView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"map.jpg"]]; CGFloat mapHeight = MAP_HEIGHT * SCREEN_WIDTH / MAP_WIDTH; mapView.frame = CGRectMake(0, 0, SCREEN_WIDTH, mapHeight); scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)]; scrollView.delegate = self; scrollView.contentSize = mapView.frame.size; scrollView.maximumZoomScale = MAP_WIDTH / SCREEN_WIDTH; scrollView.minimumZoomScale = 1; [scrollView addSubview:mapView]; self.view = scrollView; […]

哪些条件编译用来在Mac和iPhone之间切换特定的代码?

我正在开发一个包含Mac应用程序和共享代码的iPad应用程序的项目。 如何使用条件编译开关从iPhone项目中排除Mac特定的代码,反之亦然? 我注意到TARGET_OS_IPHONE和TARGET_OS_MAC都是1,所以它们都是真的。 是否有另一个我可以使用的开关只有在编译特定目标时才会返回true? 大多数情况下,我已经通过将#include <UIKit/UIKit.h>和#include <Cocoa/Cocoa.h>到两个项目的预编译头文件中来获得合作的文件。 我共享模型和一些实用程序代码,从RSS提要和Evernote获取数据。 尤其是, [NSData dataWithContentsOfURL:options:error:]函数对于选项参数iOS 3.2和更早的版本以及Mac OS 10.5和更早的版本,采用了不同于常规的iOS 4和Mac OS 10.6。 我正在使用的条件是: #if (TARGET_OS_IPHONE && (__IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_3_2)) || (TARGET_OS_MAC && (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5)) 这似乎工作,但我想确保这是防弹。 我的理解是,如果Mac版本设置为10.6,但iOS版本设置为3.2,即使它正在编译为iOS 3.2,它仍然会使用新的常量,这似乎是不正确的。 提前感谢任何帮助!

addSubView到UIButton

我正在尝试将子视图添加到UIButton。 现在工作正常。 但是一旦添加子视图,button就不能再点击了。 我使用下面的代码: UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(column*100+24, row*80+10, 64, 64); [button addSubview:asyncImage]; [button addSubview:price]; [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 如果我切出2个addsubviews,该button再次工作。 如果有人知道如何解决这个问题,那就太棒了! 日Thnx !!!

何时会返回NO

我的iPhone应用程序正在使用MFMailComposeViewController类来发送附件中的应用程序内电子邮件。 如果MFMailComposeViewController类的“canSendMail”方法返回true(YES),应用程序将只尝试显示邮件编辑器对话框。 具体而言,如果以下方法返回YES,则显示邮件编辑器,否则向用户显示错误警报对话框,指出在设备上没有设置电子邮件帐户: – (BOOL)canDeviceSendEmail { Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); return mailClass != nil && [mailClass canSendMail]; } 一组testing人员报告说,即使在设备上设置了电子邮件帐户,他们也会得到此错误警报对话框。 testing人员使用了带有OS 3.1.3的iPhone 3G。 因此,MFMailComposeViewController类必须已经存在,并且“canSendMail”方法必须返回NO。 因此,我的问题是:除了在设备上没有设置电子邮件账户的情况之外,“canSendMail”方法还能在什么情况下返回NO? 〜谢谢

如何在iPhone上绘制“语音泡泡”?

我试图得到一个类似于Mac OS X中的“语音气泡”效果,当你点击在docker上的东西。 这是我现在拥有的: 我需要得到较低部分的“三angular形”部分。 有什么办法可以画出这样的东西,并得到一个边界吗? 这将是一个iPhone应用程序。 提前致谢! 编辑:非常感谢Brad Larson,现在看起来像这样:

Facebook共享内容仅在iOS 9中共享URL

与FBSDKShareDialog共享FBSDKShareLinkContent适用于iOS 8,但无法在iOS 9设备上共享imageURL , contentTitle , contentDescription 。 该应用程序使用iOS 9 SDK,Xcode 7,Facebook SDK 4.7.0构build,所有在准备iOS9准备工作中提到的操作都已完成。 该应用程序目前在App Store中不可用,Facebook应用程序处于开发模式。 显示对话框的代码很常见(Swift 2.0): let content = FBSDKShareLinkContent() content.contentURL = <URL to the app in the App Store> content.imageURL = <valid image URL> content.contentTitle = <some title> content.contentDescription = <some descr> let shareDialog = FBSDKShareDialog() shareDialog.fromViewController = viewController shareDialog.shareContent = content […]

iPhone应用内购买 – response.products仍然是空的?

基本上,我试图在应用程序购买testing应用程序之前,我把它们实施到我的公司正在合适的应用程序。 我已经阅读了大约1000次的商店套件pdf和其他片段,但是产品仍然是空的。 这正是我到目前为止所做的: 安装testing应用程序和In App Purchasetesting项目 我在iPhone开发中心的公司开发人员门户网站上为“Test App One”创build了一个新的应用程序ID。 我确定前缀是com.mycompany.testappone以确保可以configuration应用程序购买。 留在应用程序ID部分,我通过勾选“启用应用程序内购买”选项configuration应用程序购买。 我在iTunes Connect中创build了“Test App One”,并完成了通常的程序,但是select了“稍后上传二进制文件”,并没有提交审核,因为该应用程序什么都不做。 当然,我们不必提交应用程序来检查这个工作?! 然后,我点击了应用程序购买pipe理,并创build了一个新的产品ID“test1”,并批准它,以便清除销售。 码 我在XCode中build立了一个名为TestAppOne的新项目,这里是我现在使用的唯一两个类: TestAppOneAppDelegate.h: #import <UIKit/UIKit.h> #import <StoreKit/StoreKit.h> @interface TestAppOneAppDelegate : NSObject <UIApplicationDelegate, SKRequestDelegate, SKProductsRequestDelegate> { UIWindow *window; } TestAppOneDelegate.m: #import "TestAppOneAppDelegate.h" static NSString *kMyFeatureIdentifier1 = @"com.mycompany.testappone.test1"; @implementation TestAppOneAppDelegate @synthesize window; – (void)applicationDidFinishLaunching:(UIApplication *)application { if([SKPaymentQueue canMakePayments]) { NSLog(@"IN-APP:can […]

以编程方式隐藏UIAlertView?

有没有办法隐藏UIAlertView编程? 其实我在UIAlertView中添加了一个UITextField,当用户敲击键盘返回键时,我想要执行和“Ok”button相同的操作。