如何在Xcode 5.0上制作适用于iOS 4.3的iOS应用程序

时间:2013-10-19 13:10:42

标签: iphone ios xcode ipad

我正在尝试制作适用于Xcode 5.0的iOS 4.3版本的iOS(iPad和iPhone)应用程序。

让我们调用我的项目TESTING。

这就是我所做的:

  1. 项目测试,信息,iOS部署目标集4.3
  2. 删除了故事板 - >因为iOS 5.0版本支持它们
  3. 删除了自动布局 - >因为iOS 6.0版本支持它
  4. 我已正确添加TESTING-Info.plist“主nib文件基本名称”,适用于Window,View或Application。
  5. 添加了XIB文件,这是问题开始的地方
  6. 我应该添加什么:窗口,视图或应用程序?

    我已经尝试了所有这些结果:

    查看 - >不会显示View(我添加了一些控件,如:text field,label)

    应用程序和窗口在模拟器中工作正常。

    但是在iPhone(iOS 6.x)文本字段不起作用,键盘显示位不接受输入。

    如何正确地做到这一点?

3 个答案:

答案 0 :(得分:2)

目前iOS的状态,Apple建议新的应用程序不需要支持除iOS 7之外的任何内容。这似乎有点不切实际,但我建议您在iOS 6之前不需要支持任何内容。在iOS 5之前,任何非平凡的应用程序都会出现问题。

虽然目前这似乎不是您的问题,但支持iOS< 5:ARC的问题仍然存在。 ARC strong引用是一个编译器功能,可以很容易地为iOS 4编译,但ARC weak引用需要OS支持和合作。您可以使用__unsafe_unretainassign解决此问题,否则您可能会使用弱引用。这有一些限制,但它通常有效。

另外值得注意的是,我在使用iOS 7 SDK编译时遇到了UITextField的错误,该错误适用于iOS 6.x.该错误是如果该字段没有文字,textField.text会返回nil而不是@""。这不是一个大问题,但如果您执行textField.text = [textField.text stringByAppendingString:@"1"];之类的操作,则值永远不会增长,因为[nil anything]始终返回nil

答案 1 :(得分:1)

近95%的设备使用iOS 6或iOS 7.对于使用Xcode 5而不是从iOS 4.3开始的95%设备更容易开发。

答案 2 :(得分:1)

  1. 文件的所有者设置为UIApplication
  2. 添加NSObject并将其类设置为您的App Delegate。
  3. UIApplication.delegate与App Delegate对象连接。

  4. 添加UIWindow确保选中启动时可见 。这可能会导致错误的文本输入行为。

  5. 使用App Delegate window属性连接窗口。


  6. 编辑1 :我不明白为什么人们会为这个XIB烦恼。这是等效的代码:

    • main.m

      return UIApplicationMain(argc, argv, nil, @"YourAppDelegate"));
      
    • -application:didFinishLaunchingWithOptions:

      self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
      [self.window makeKeyAndVisible];
      

    编辑2 Neal 是支持旧iOS版本的。为什么你需要支持iOS 4.3,我的上帝?!