小编Mat*_*tyG的帖子

使用iOS 6 SDK和Xcode 4.5构建armv6架构(目标iOS 3.1.3)?

有没有机会使用iOS 6 SDK开发针对iOS 3.1.3的应用程序?如果我使用旧的部署目标打开我的项目,编译器会警告我:

iOS deployment targets lower than 4.3 are not supported
Run Code Online (Sandbox Code Playgroud)

这可能是由于仅明显的事实armv7armv7s二进制文件可以建成.如果我armv6手动添加(直到iPhone 3G的设备),还有几个警告:

warning: no rule to process file '$(PROJECT_DIR)/main.m' of type sourcecode.c.objc for architecture armv6
...
...
warning: architecture armv6 is not supported (current ARCHS = "armv6 armv7 armv7s").
Run Code Online (Sandbox Code Playgroud)

那么我该如何处理呢?在使用iOS 6 SDK进行开发时,有没有办法支持iOS 3.1.3?如果没有,我最终将不得不转移到iOS 4.3的最低目标.甚至可以提交仅支持版本> = 4.3的新版本吗?我的用户在早期版本上会发生什么?他们是否根本没有被告知不兼容的更新,因此将继续使用我的应用程序的旧版本?如果没有,这可以实现吗?

iphone targets ios ios6 xcode4.5

14
推荐指数
2
解决办法
1万
查看次数

在Xcode 6中通过Storyboard设置UITableView的contentInset

在Xcode 6上,似乎已经取消了通过UIStoryboard设置滚动视图/表视图的内容插入的能力.见下图:

在图像上

左边的参数来自Xcode 6,而右边的参数来自Xcode 5

有谁知道参数是否已移动,或者我们是否无法通过UIStoryboard设置内容插入?如果可能的话,我真的想保留我的代码.

uitableview uiscrollview ios uistoryboard xcode6

14
推荐指数
1
解决办法
3857
查看次数

动画UIFont大小的变化

有没有办法动画一些文本的字体大小的变化.我想从UIView的子类调用drawRect并以不同的大小绘制文本.

iphone animation core-animation objective-c uiview

13
推荐指数
1
解决办法
4524
查看次数

检查核心数据中是否设置了属性?

如何检查是否在Core Data Object中设置了属性?

我将所有核心数据对象加载到目录中:

var formQuestions = [Questions]()
Run Code Online (Sandbox Code Playgroud)

我的核心数据NSManagementObject是:

@NSManaged var noticeText: String
Run Code Online (Sandbox Code Playgroud)

formQuestions [indexPath.row] .noticeText

//加载:

var fetchRequest = NSFetchRequest(entityName: "Questions")
fetchRequest.predicate = NSPredicate(format: "forms = %@", currentForm!)
formQuestions = context.executeFetchRequest(fetchRequest, error: nil) as [Questions]
Run Code Online (Sandbox Code Playgroud)

我的属性"noticeText"可能是空的或不是,所以当我创建我的核心数据对象时,可能无法设置某些值.(该属性在Core Data中设置为可选)

当我现在尝试证明是否有值时,它总是给我带来"EXC_BAD_ACCESS ......"

if(formQuestions[indexPath.row].noticeText.isEmpty == false)
Run Code Online (Sandbox Code Playgroud)

我在创建核心数据对象时可以设置一个空字符串,但这应该不是一个好的解决方案.

那么如何检查(optinal)和未设置的值是否存在?

提前致谢.

core-data ios swift

13
推荐指数
2
解决办法
1万
查看次数

Cocoa/iOS/iPhone中的模型对象所有权和MVC

我试图了解如何更好地实现模型 - 视图 - 控制器设计模式.

什么对象应该"拥有"Model对象?单个Controller是否应该实例化(拥有)Model对象?

以下是一个示例场景:

我有一个包含两个UIViewControllers(controllerA和controllerB)的UITabbarController.显然,这些控制器都不是彼此拥有的.我有一个Model对象,它包含一些数据并执行一些网络活动.controllerA和controllerB都需要能够对Model对象进行更改.controllerB需要知道何时对Model对象进行了更改(通过controllerA或从网络活动返回的结果).从最近的阅读:

  • 我需要Model对象和controllerB之间的KVO?
  • Model对象应该是单例吗?这样两个控制器都可以修改它吗?
  • 在更简单的应用程序中,我已经让viewController拥有了Model对象.有没有办法让一个控制器实例化Model对象,但是对于其他控制器是否具有对它的写访问权限?
  • 我还读到了使用app委托拥有Model对象,并允许控制器通过app delegate共享实例进行访问.这看起来有点难看 - 使用app delegate singleton来全局访问我的Model对象.将我的Model对象设为单例不是更好吗?
  • 我看到有人在这个链接上给iPhoneDevSDK,但他的方法的原因让我感到厌烦.再一次,这不是让应用程序委托参与应该只是一个单身人士吗?

主要是,两个控制器是否有任何其他方式来访问(写入)一个模型,而不是通过模型作为单例?

此外,当Controller拥有另一个Controller时(例如,当根视图控制器实例化另一个视图控制器以在其自身之上堆叠时,在UINavigationController中),共享模型的最佳方法是根视图控制器实例化模型,并且在将其推送到导航堆栈之前将其传递给下一个视图控制器)?

iphone model-view-controller object objective-c ios

9
推荐指数
1
解决办法
3147
查看次数

在Xcode 4.5中针对iOS 6 SDK构建时,视图下降20像素

在针对iOS 6.0 SDK构建我的iPad应用程序后,我通过UISplitViewController的详细视图得到了这种奇怪的行为.详细视图的位置比应有的低20个像素(点/ 40像素).

在此输入图像描述

这是5.1下的样子:

在此输入图像描述

对于Interface Builder中的DetailViewController_iPad.xib,我将模拟指标>顶栏设置为无.这没有用.我已经记录了视图框:

- (void) viewDidLayoutSubviews {
//.. etc
NSLog(@"viewDidLayoutSubviews: %@", CGRectCreateDictionaryRepresentation(self.view.frame) );
}
Run Code Online (Sandbox Code Playgroud)

这将高度记录为684而不是它应该是:704.

Height = 684; Width = 703; X = 0; Y = 0;

任何人都有这方面的经验吗?我接下来应该尝试什么?

更新:这个问题似乎是间歇性的,有些编译导致它,有些则没有.

如果其他人遇到这个问题并找出原因造成的,我仍然很想知道.

uiview uisplitviewcontroller ios ios6 xcode4.5

9
推荐指数
1
解决办法
2387
查看次数

在Objective-C中延迟加载 - 我应该从getter中调用setter吗?

这是一个小细节,但每次我懒得加载一些东西我都会被它抓住.这两种方法都可以接受吗?要么更好吗?假设变量具有retain属性.

方法#1

(AnObject *)theObject{
    if (theObject == nil){
        theObject = [[AnObject createAnAutoreleasedObject] retain];
    }
    return theObject;
}
Run Code Online (Sandbox Code Playgroud)

方法#2

(AnObject *)theObject{
    if (theObject == nil){
        self.theObject = [AnObject createAnAutoreleasedObject];
    }
    return theObject;
}
Run Code Online (Sandbox Code Playgroud)

首先,我不确定是否可以访问访问者中的另一个访问者功能(但不知道为什么不这样做).但似乎设置类变量而不通过setter可能同样糟糕,如果setter执行某些特殊操作(或者如果属性更改为除了retain之外的内容并且未检查getter).

memory-management lazy-loading objective-c lazy-initialization

8
推荐指数
1
解决办法
5263
查看次数

iPhone - 使用不透明文本创建半透明矩形

我有一个MapView,我想在顶部显示一个黑色半透明矩形,里面有一个文本.不是整个地图上只有它的一部分(可能在顶角)就像一个信息框(就像双击时出现的iPod播放器中的一个,显示静音和跳过按钮).

我试过谷歌,但我没有得到任何明确的答案.如何实现这一目标的最佳方法是什么?

提前致谢

iphone transparency alpha uiview uilabel

8
推荐指数
1
解决办法
8583
查看次数

强制genstrings按照外观顺序而不是按字母顺序构建Localizable.strings文件

我是iOS的国际化和本地化的新手.我正在运行genstrings: find . -name \*.m | xargs genstrings -o en.lproj生成我的Localizable.strings文件.它按字母顺序(按键)构建文件.

为了便于翻译,我希望键和值按照它们在.m文件中的出现顺序排序.这可能与genstrings?我在其man页面上找不到相关信息.

cocoa-touch localization genstrings nslocalizedstring ios

8
推荐指数
2
解决办法
2590
查看次数

在删除UITableView单元格之前发出警报 - (UIAlertController)Swift或Objective-C

我想删除一个表视图单元格,但在该操作发生之前,我想给用户一个警报视图.我懂了:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning"
                                                        message:@"Are you sure?"
                                                       delegate:self
                                              cancelButtonTitle:@"NO"
                                              otherButtonTitles:@"YES", nil];
        [alert show];

        [self.array removeObjectAtIndex:indexPath.row];//or something similar to this based on your data source array structure
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
    if([title isEqualToString:@"Nee"])
    {
        NSLog(@"Nothing to do here");
    }
    else if([title isEqualToString:@"Ja"])
    {
        NSLog(@"Delete the cell");

    }
}
Run Code Online (Sandbox Code Playgroud)

但是现在当我在单元格上向右滑动并且删除按钮出现时,我没有AlertView.当我按下删除按钮时,我只获得AlertView.当我按下删除按钮时,将显示该消息但该单元格已被删除.

如何使这项工作?所以当我滑动时有一个AlertView.

objective-c uitableview uialertview swift uialertcontroller

8
推荐指数
2
解决办法
6750
查看次数