Tag: objective c

NSObject +加载和初始化 – 他们做什么?

我有兴趣了解领导开发人员重写+初始化或+加载的情况。 文档清楚地表明这些方法是由Objective-C运行时为您调用的,但是这些方法的文档都清楚地表明了这一点。 🙂 我的好奇心来自于苹果的示例代码 – MVCNetworking。 他们的模型类有一个+(void) applicationStartup方法。 它在文件系统上做了一些维护,读取NSDefaults等等,并且在尝试了NSObject的类方法之后,看起来这个清理工作似乎可以放到+ load中。 我修改了MVCNetworking项目,将App Delegate中的调用删除到了+ applicationStartup,并将pipe家位加载到了+加载中…我的电脑没有着火,但这并不意味着它是正确的! 我希望了解任何细微的东西,陷阱,以及围绕自定义设置方法的东西,您必须调用vs + load或+ initialize。 对于+加载文件说: 加载消息被发送到dynamic加载和静态链接的类和类,但是只有当新加载的类或类实现了可以响应的方法时。 如果你不知道所有单词的确切含义,那么这个句子就是kludgey,很难parsing。 帮帮我! “dynamic加载和静态链接”是什么意思? 什么东西可以dynamic加载和静态链接,或者它们是互斥的? “…新加载的类或类实现了一个方法,可以响应”什么方法? 回应如何? 至于+初始化,文档说: 初始化它每个类只能调用一次。 如果要对类和类的类进行独立初始化,则应该实现加载方法。 我认为这个意思是,“如果你想设置类,不要使用初始化。” 好的。 什么时候或为什么我会重写初始化呢?

在前台iOS中获取推送通知

我在我的应用程序中使用推送通知服务。 当应用程序在后台时,我可以在通知屏幕上看到通知(从iOS设备顶部向下滑动时显示的屏幕)。 但是,如果应用程序在前台委托方法 – (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo 被叫,但通知画面不显示通知。 我想在通知屏幕上显示通知,而不pipe应用程序是在后台还是在前台。 我已经厌倦了寻找解决scheme。 任何帮助是极大的赞赏。

在Objective-C / Cocoa中Java的Thread.sleep()相当于什么?

在Java中,您可以使用Thread.sleep()将当前线程的执行暂停一段时间。 Objective C中有这样的东西吗?

Info.plist中的CFBundleVersion上传错误

“您上传的二进制文件是无效的,Info.plist文件中的关键CFBundleVersion版本必须包含比以前上传版本更高的版本。” 当我上传我的应用程序时,出现此错误。 我在iTunes Connect上将更新后的版本设置为1.2,并将.plist文件更新为1.2。 我不明白为什么我得到这个错误。 任何帮助,将不胜感激。 谢谢。

以编程方式点燃button点击事件?

有没有办法编程启动button单击事件? 我有一个button放置在一个UIView,并在特定的情况下,我想通过代码点击button,而不是手动作为用户。 在iOS开发中可能吗? 请提供您的build议,并指导我如何做到这一点。 谢谢。

iOS应用程序,编程获取构build版本

有没有办法以编程方式获取我的应用程序的构build版本? 我需要能够检测用户何时通过AppStore更新应用程序,以执行一些代码进行调整

如何在UITableView中设置分隔符的全宽

所以我有一个UITableView分隔符没有完整的宽度。 它在左侧之前像10个像素结束。 我在viewDidLoad中玩这个代码 self.tableView.layoutMargins = UIEdgeInsetsZero; 也可以在故事板中select自定义或默认select器。 现在,所有填充的单元格都不具有全宽select器,但空单元格具有全宽度。 我怎么能解决这个问题? 感谢所有的帮助

iOS启动后台线程

我的iOS设备上有一个小的sqlitedb。 当用户按下button时,我从sqlite获取数据并将其显示给用户。 这个提取部分我想在后台线程中做(不要阻塞UI主线程)。 我这样做是这样 – [self performSelectorInBackground:@selector(getResultSetFromDB:) withObject:docids]; 提取和一点处理后,我需要更新用户界面。 但是,由于(作为一个好的做法),我们不应该从后台线程执行UI更新。 我就像这样在mainthread上调用一个selector – [self performSelectorOnMainThread:@selector(showResults) withObject:nil waitUntilDone:NO]; 但我的应用程序在第一步崩溃。 即开始一个后台线程。 这不是在iOS中启动后台线程的方法吗? 更新1:后[self performSelectorInBackground….我得到这个stacktrace,没有任何信息是如此的 – 更新2:我甚至尝试过,像这样开始后台线程 – [NSThread detachNewThreadSelector:@selector(getResultSetFromDB:) toTarget:self withObject:docids]; 但我仍然得到相同的堆栈跟踪。 只是为了澄清,当我在主线程上执行这个操作时,一切都运行平稳… 更新3这是我想从后台运行的方法 – (void)getResultSetFromDB:(NSMutableArray *)toProceessDocids { SpotMain *mirror = [[SpotMain alloc] init]; NSMutableArray *filteredDocids = toProceessDocids; if(![gMediaBucket isEqualToString:@""]) filteredDocids = [mirror FetchDocIdsForMediaBucketWithDocID:filteredDocids mBucket:gMediaBucket numRes:-1]; if(![gMediaType isEqualToString:@""]) […]

在学习Objective-C之前先学习C

作为一个有抱负的苹果开发人员,我希望得到社区的意见,如果在进入Objective-C之前学习C最好,最终还是Cocoa Framework? 我的直觉说学C,这会给我一个很好的基础。

什么是NSLocalizedString()的第二个参数?

什么是*comment参数在: NSString *NSLocalizedString(NSString *key, NSString *comment) 如果我这样做: NSLocalizedString(@"Hello_World_Key", @"Hello World") 并有两个版本的Localizable.strings(英文和西class牙文),每个都需要条目: English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World"; Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo"; 英国人不是多余的吗?