objective-c相关内容

为什么 ARC 仍然需要 @autoreleasepool?

在大多数情况下,使用 ARC(自动引用计数),我们根本不需要考虑使用 Objective-C 对象的内存管理.不再允许创建 NSAutoreleasePool,但是有一个新的语法: @autoreleasepool {…} 我的问题是,当我不应该手动释放/自动释放时,为什么我还需要这个? 编辑:简明扼要地总结一下我从所有回答和评论中得到的: 新语法: @autorelease ..

如何打印出方法名称和行号并有条件地禁用 NSLog?

我正在做一个有关在 Xcode 中调试的演示文稿,并希望获得有关有效使用 NSLog 的更多信息. 特别是,我有两个问题: 有没有办法轻松 NSLog 当前方法的名称/行号? 有没有办法在编译发布代码之前轻松“禁用"所有 NSLog? 解决方案 下面是一些我经常使用的关于 NSLog 的有用宏: #ifdef 调试# 定义 DLog(fmt, ...) NSLog((@"% ..
发布时间:2022-01-31 20:37:03 移动开发

学习 Objective-C 的好资源

我从事 Java 开发已有多年,主要针对 Linux 和 Windows.在我的本科和研究生学习期间,我也做了很多 C 和 C++ 方面的工作.我最近(过去一年半)开始在家里主要使用 Apple 电脑,并且有兴趣探索他们的 Xcode 开发环境.我有兴趣学习如何使用 Cocoa 接口等.但是,我对 Objective-C 一无所知(或几乎一无所知).我知道它是 C 的纯超集,但是我对一些学习它的资 ..
发布时间:2022-01-31 20:33:04 移动开发

在 Objective-C 中创建一个抽象类

我最初是一名 Java 程序员,现在使用 Objective-C.我想创建一个抽象类,但这在 Objective-C 中似乎是不可能的.这可能吗? 如果不是,我可以在 Objective-C 中与抽象类有多接近? 解决方案 通常情况下,Objective-C 类仅按照约定是抽象的——如果作者将一个类记录为抽象类,则不要在没有继承它的情况下使用它.然而,没有编译时强制阻止抽象类的实例化 ..
发布时间:2022-01-31 20:30:44 移动开发

self.ivar 和 ivar 之间的区别?

aclass.h@interface aClass : NSObject {NSString *名称;}@property(非原子,保留)IBOutlet NSString *name;@结尾 aclass.m@实现类@synthesize 名称;- (无效)dealloc {[名称发布];[超级释放];}-(无效)测试1 {名称=@“你好";}-(无效)测试2 {self.name = @"你 ..
发布时间:2022-01-31 20:27:36 移动开发

Objective-C中强弱的区别

我是 Obj-C 的新手,所以我的第一个问题是: @property对象指针声明中的strong和weak有什么区别? 另外,nonatomic 是什么意思? 解决方案 强引用(在大多数情况下都会用到)意味着你想“拥有"你用这个属性/变量引用的对象.只要您使用强引用指向它,编译器就会注意您分配给此属性的任何对象都不会被破坏.只有将属性设置为 nil 后,对象才会被销毁(除非一个 ..
发布时间:2022-01-31 20:23:22 移动开发

iOS 7 状态栏在 iPhone 应用程序中回到 iOS 6 默认样式?

在 iOS 7 中,UIStatusBar 的设计方式使其与视图合并,如下所示: (由 Tina Tavčar 设计的 GUI) 这很酷,但是当你的视图顶部有东西时它会有点混乱你的视图,并且它会与状态栏重叠. 是否有一个简单的解决方案(例如在 info.plist 中设置属性)可以将其工作方式 [不重叠] 更改回 iOS6 中的方式? 我知道一个更直接的解决方案是为每个视图 ..
发布时间:2022-01-31 20:21:30 移动开发

退出 iPhone 应用程序的正确方法?

我正在编写一个 iPhone 应用程序,由于某些用户操作,我需要强制它退出.清理应用程序分配的内存后,调用什么方法来终止应用程序? 解决方案 你试过exit(0)吗? 或者,[[NSThread mainThread] exit],虽然我没有尝试过它似乎是更合适的解决方案. ..
发布时间:2022-01-31 20:19:58 移动开发

如何在我的 iOS 应用程序中每 n 分钟更新一次后台位置?

我正在寻找一种在我的 iOS 应用程序中每 n 分钟更新一次后台位置的方法.我使用的是 iOS 4.3,该解决方案应该适用于未越狱的 iPhone. 我尝试/考虑了以下选项: CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges:根据配置的属性,这在后台按预期工作,但似乎无法强 ..
发布时间:2022-01-31 20:19:28 移动开发

洗牌 NSMutableArray 的最佳方法是什么?

如果你有一个NSMutableArray,你如何随机打乱元素? (我对此有自己的答案,发布在下面,但我是 Cocoa 的新手,我很想知道是否有更好的方法.) 更新:正如@Mukesh 所指出的,从 iOS 10+ 和 macOS 10.12+ 开始,有一个 -[NSMutableArray shuffledArray] 方法可用于随机播放.请参阅 https://developer.a ..
发布时间:2022-01-31 20:16:19 移动开发

#warning:C 风格的 for 语句已弃用,将在 Swift 的未来版本中删除

我只是用 swift 2.2 下载了一个新的 Xcode (7.3). 它有一个警告: C 风格的 for 语句已弃用,并将在 Swift 的未来版本中删除. 如何解决此警告? 解决方案 移除 for init;比较;增加 {} 并轻松删除 ++ 和 --.并使用 Swift 漂亮的 for-in 循环 //警告:C 风格的 for 语句已弃用,将在 Swift 的未来 ..
发布时间:2022-01-31 18:33:06 移动开发

如何以编程方式从课堂加载故事板?

我的问题是我正在寻找同时使用 storyboard 和 xib 的方法.但是我找不到以编程方式加载和显示故事板的正确方法.项目开始使用 xib 开发,现在很难将所有 xib 文件嵌套在情节提要中.所以我一直在寻找一种在代码中执行此操作的方法,例如对 viewControllers 使用 alloc, init, push.在我的例子中,我在情节提要中只有一个控制器:UITableViewContr ..
发布时间:2022-01-30 19:21:35 移动开发