Questions tagged «objective-c»

仅在有关Objective-C功能或取决于语言代码的问题上使用此标记。标签[cocoa]和[cocoa-touch]应该用于询问Apple的框架或类。使用相关标签[ios],[macos],[apple-watch]和[tvos]来解决特定于这些平台的问题。



15
registerForRemoteNotificationTypes:在iOS 8.0和更高版本中不支持
尝试在iOS 8.x下注册推送通知时: application.registerForRemoteNotificationTypes(UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound) 我收到以下错误: registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later. 有什么想法是新的方法吗?当我在iOS 7.x上运行此Swift应用程序时,它确实起作用。 编辑 在iOS 7.x上,当我包含条件代码时(SystemVersion条件代码或#if __IPHONE_OS_VERSION_MAX_ALLOWED> = 80000) dyld: Symbol not found: _OBJC_CLASS_$_UIUserNotificationSettings

24
裁剪UIImage
我有一些代码可以调整图像的大小,这样我就可以得到图像中心的一定比例的块-我用它取a UIImage并返回图像的小正方形表示,类似于在的相册视图中看到的照片应用程序。(我知道我可以使用UIImageView和调整裁切模式来获得相同的结果,但是有时这些图像会显示在中UIWebViews)。 我已经开始注意到这段代码中的某些崩溃,我有些困惑。我有两种不同的理论,我想知道两者中的任何一种都没有。 理论1)我通过绘制到目标尺寸的屏幕外图像上下文来实现裁剪。由于我需要图像的中心部分,因此将CGRect传递的参数设置为drawInRect大于图像上下文边界的参数。我本以为这是犹太洁食,但我是不是想利用我不应该碰到的其他记忆? 理论2)我正在后台线程中完成所有这些工作。我知道UIKit的某些部分仅限于主线程。我以为/希望绘制到屏幕外的视图不是其中之一。我错了吗? (哦,我怎么想念NSImage's drawInRect:fromRect:operation:fraction:方法。)

7
如何使用UIVisualEffectView来模糊图像?
有人可以举一个将模糊应用于图像的小例子吗?我一直在试图弄清楚代码一段时间了:( obj c还是新的! 在UIVisualEffectView提供了对复杂视觉效果的简单抽象。根据所需的效果,结果可能会影响位于视图后面的内容或添加到视图的contentView的内容。 施加UIVisualEffectView到一个现有的视图以应用模糊或活力效果离开的视图。将UIVisualEffectView添加到视图层次结构后,将所有子视图添加到的contentView中UIVisualEffectView。不要将子视图直接添加到UIVisualEffectView自身。 https://developer.apple.com/documentation/uikit/uivisualeffectview#//apple_ref/occ/instp/UIVisualEffectView/contentView

1
自定义dealloc和ARC(Objective-C)
在我的小iPad应用程序中,我具有使用观察者的“切换语言”功能。每个视图控制器在其运行期间向我的观察者注册viewDidLoad:。 - (void)viewDidLoad { [super viewDidLoad]; [observer registerObject:self]; } 当用户单击“更改语言”按钮时,新语言将存储在我的模型中,并通知观察者并调用updateUi:其已注册对象上的选择器。 这非常有效,除了在TabBarController中具有视图控制器时。这是因为在加载选项卡栏时,它会从其子控制器中获取选项卡图标,而无需初始化视图,因此viewDidLoad:不会调用它,因此这些视图控制器不会收到语言更改通知。因此,我将registerObject:调用移到了init方法中。 回到我以前viewDidLoad:向观察员注册时,我曾经viewDidUnload:注销过。由于我现在正在注册init,因此取消注册非常有道理dealloc。 但是,这是我的问题。当我写: - (void) dealloc { [observer unregisterObject:self]; [super dealloc]; } 我收到此错误: ARC禁止显式发送消息“ dealloc” 由于我需要致电[super dealloc]以确保正确清理超类,但是ARC禁止这样做,所以我现在陷入困境。当我的物体快要死时,还有另一种方法来通知我吗?

11
NSUserDefaults-如何判断密钥是否存在
我正在开发一个小型iPhone应用程序,并且将其NSUserDefaults用作数据持久性。它只需要跟踪一些事情,例如一些名称和数字,所以我想我也可以保持简单。 我找到此页面仅供参考,但我认为它不能回答我的问题。基本上,我希望能够检查中是否已存在值(或键)NSUserDefaults,然后进行相应的操作。 一些示例:该应用程序启动,如果这是它第一次启动,它将输出一条警告消息,表示欢迎。要知道这是第一次打开它,它会读取UserDefaults和检查。 示例2:它显示“ Hello [Name]”,其中Name是您输入的内容。如果您已打开该应用程序且没有名称,则应显示“ Hello World”。我需要检查您是否已经输入名称并采取相应措施。该名称将存储在中NSUserDefaults。 这里有帮助吗?我真的很感激!


7
在这个区块中强烈地捕捉自我很可能会导致保留周期
如何避免在xcode中出现此警告。这是代码片段: [player(AVPlayer object) addPeriodicTimeObserverForInterval:CMTimeMakeWithSeconds(0.1, 100) queue:nil usingBlock:^(CMTime time) { current+=1; if(current==60) { min+=(current/60); current = 0; } [timerDisp(UILabel) setText:[NSString stringWithFormat:@"%02d:%02d",min,current]];///warning occurs in this line }];

25
如何在Swift中设置后退按钮文本
如何删除后退按钮文本。 当前的后退按钮: <返回 所需的后退按钮: <其他 这些都不起作用: self.navigationItem.backBarButtonItem?.title = "Back" self.backItem?.title = "" self.navigationController?.navigationBar.backItem?.title = "" self.navigationItem.backBarButtonItem?.title = "" self.navigationController?.navigationItem.backBarButtonItem?.title="Back" self.navigationController?.navigationBar.backItem?.title = "" self.navigationController?.navigationItem.backBarButtonItem?.title
207 ios  objective-c  swift 

30
Xcode 4挂在“附加到(应用程序名称)”上
我刚刚升级到Xcode 4,由于某种原因,我的应用程序无法在模拟器或iOS设备上运行。它在Xcode 3中运行正常,但是当我按Run时,程序突然停止在“附加到...”。似乎也没有其他信息可以帮助解决此问题。 作为总结,您可以尝试以下方法来解决该问题: 重新启动模拟器。 确保您没有在Building Phases-> Copy Bundle Resources中包含Info.plist文件。 资源文件夹作为文件夹引用添加到项目中(蓝色文件夹图标)。造成麻烦的是,将文件夹作为一个组添加后,问题消失了。


14
如何在iOS应用程序中每n分钟获取一次后台位置更新?
我正在寻找一种方法来在我的iOS应用程序中每隔n分钟获取一次后台位置更新。我正在使用iOS 4.3,该解决方案应适用于非越狱iPhone。 我尝试/考虑了以下选项: CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges:此操作基于配置的属性,可在预期的后台运行,但是似乎无法强制每n分钟更新一次位置 NSTimer:当应用程序在前台运行时可以工作,但似乎不是为后台任务而设计的 本地通知:可以每n分钟安排一次本地通知,但是无法执行一些代码来获取当前位置(无需用户通过通知启动应用程序)。这种方法似乎也不是一种干净的方法,因为这不是通知的用途。 UIApplication:beginBackgroundTaskWithExpirationHandler:据我所知,当应用程序移至后台时,应使用此方法在后台完成一些工作(时间也受限制),而不是实施“长时间运行”的后台进程。 如何实施这些常规的后台位置更新?


20
Swift编译器错误:“框架模块内的非模块化标头”
现在,我想将我的ObjC框架迁移到Swift,并遇到以下错误: include of non-modular header inside framework module 'SOGraphDB' 引用指向仅定义协议的头文件,我在某些类中使用此头文件来使用此协议。 似乎与模块功能有关,但目前尚不清楚如何解决,您知道解决方案吗? 更新: 这是Swift编译器错误。 更新2: 一种快速的解决方法(但不能解决根本原因)是将以下设置设置为yes:CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.