小编Joe*_*her的帖子

如何使用Swift @autoclosure

我注意到assert在Swift中编写第一个值时输入为

@autoclosure() -> Bool
Run Code Online (Sandbox Code Playgroud)

用重载方法返回一个通用T值,通过它来测试存在LogicValue protocol.

但严格坚持手头的问题.它似乎想要一个@autoclosure返回一个Bool.

编写一个不带参数并返回Bool的实际闭包不起作用,它要我调用闭包使其编译,如下所示:

assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
Run Code Online (Sandbox Code Playgroud)

然而,简单地通过Bool工作:

assert(false, "No user has been set", file: __FILE__, line: __LINE__)
Run Code Online (Sandbox Code Playgroud)

那么发生了什么?什么是@autoclosure

编辑: @auto_closure已重命名@autoclosure

closures swift

143
推荐指数
3
解决办法
3万
查看次数

如何检查是否为64位构建静态库?

我刚刚为iOS构建了一个静态库,并将Architectures的构建设置设置为$(ARCHS_STANDARD_INCLUDING_64_BIT).

我想确保.a库正确包含该体系结构,但是当我运行lipo -info它时,我看到:

fat文件中的体系结构:library.a是:armv7 armv7s(cputype(16777228)cpusubtype(0))

这是否意味着不包括arm64?如果lipo命令无法告诉我,还有另一种说法吗?

我正在安装最新的Command Line Tools运行Xcode 5.

objective-c static-libraries ios lipo

73
推荐指数
3
解决办法
5万
查看次数

NSStatusItem更改暗色调的图像

在OSX 10.10 beta 3中,Apple发布了他们的暗色调选项.不幸的是,这也意味着几乎所有的状态栏图标(除了我见过的Apple和Path Finder),包括我的,都在黑暗的背景下保持黑暗.如何在应用深色调时提供替代图像?

我没有看到API更改NSStatusBarNSStatusItem显示我的更改,我假设它是一个通知或一些反应,以便在用户改变色调时轻松进行更改.

绘制图像的当前代码包含在NSView:

- (void)drawRect:(NSRect)dirtyRect
{
    // set view background color
    if (self.isActive) {
        [[NSColor selectedMenuItemColor] setFill];
    } else {
        [[NSColor clearColor] setFill];
    }

    NSRectFill(dirtyRect);

    // set image
    NSImage *image = (self.isActive ? self.alternateImage : self.image);
    _imageView.image = image;
}
Run Code Online (Sandbox Code Playgroud)

macos objective-c nsstatusitem nsstatusbar osx-yosemite

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

UIImage颜色变化?

如何通过编程改变UIImage的颜色,请帮忙吗?如果我发送UIImage,它的颜色需要改变任何帮助吗?如果我通过bitmaphandling改变RGB颜色,它就不起作用.

iphone

18
推荐指数
3
解决办法
2万
查看次数

Xcode 5布局错误 - 标签错位视图框在运行时会有所不同

我刚刚安装了Xcode 5,我正在准备我的应用程序,以便下周在iOS 7上发布到App Store.我收到了一大堆错误和警告.

在一个应用程序中,我有一个UIPickerView,UITextFields和一堆UILabel.在这个应用程序中,它Illegal Configuration在storyboard文件中的几乎所有控件上都会出现(红色)错误.我不知道该错误是什么或如何解决它.我会很感激一些帮助.我无法完全重新创建该文件,因为有20个复杂的视图.

在另一个应用程序中,有一个UIScrollView包含一堆UILabel和UITextFields,以及一个以编程方式创建的UITextView,它包含基于您在(上一个视图)UITableView中选择的内容的文本,以及调整自身大小以适应内容.UIScrollView调整大小以适应UITextView的新大小.这个编译和构建并创建UITextView但不包含文本,可能是因为它现在调整错误.UIScrollView现在除了垂直之外还水平滚动,这是不应该的.这个只给出(黄色)警告,所有人都说:

Misplaced View Frame for "Label - Symbol:" will be different at run time. 4个控件包括此Label和另一个,Text Field和Scroll View.

我很感激任何帮助,因为这是我第一次适应新版本的Xcode和iOS.

PS:Illegal Configuration错误的详细信息包括:
Auto Layout on iOS Versions prior to 6.0

谢谢!

layout xcode objective-c ios xcode5

18
推荐指数
2
解决办法
3万
查看次数

iOS7上的NSMergeConflict

我更新了我的应用程序以支持iOS 7,并且遇到了问题,在我的一个屏幕上我[context save];收到以下错误:

NSCocoaErrorDomain Code=133020 "The operation couldn’t be completed. (Cocoa error 133020.)" UserInfo=0x1115a6d0 {conflictList=(
"NSMergeConflict (0x1115a670) for NSManagedObject (0xf25c850) with objectID '0xf25c070 <x-coredata://76AF57C8-F7FF-4880-B06B-63F8B780C96D/Screen/p7>' with oldVersion = 5 and newVersion = 6 
and old object snapshot = {\n    index = 3;\n    message = \"<null>\";\n    status = 0;\n} and new cached row = {\n    index = 3;\n    message = \"<null>\";\n    status = 0;\n}"
Run Code Online (Sandbox Code Playgroud)

在iOS6上不会出现此问题.

更新:managedObjectContext的代码

-(NSManagedObjectContext *)managedObjectContextForCurrentThread{
if ([NSThread isMainThread])
{
    NSManagedObjectContext *parentContext = self.mainManagedObjectContext.parentContext;
    [parentContext performBlockAndWait:^{
        NSMergePolicy *mergePolicy …
Run Code Online (Sandbox Code Playgroud)

merge core-data objective-c ios

9
推荐指数
3
解决办法
7253
查看次数

Jekyll paginator不会生成任何页面

我在Jekyll有分页问题.似乎paginator液体标签根本不做任何事情.每当我在主index.html页面上替换for循环时,

{% for post in site.posts %}
Run Code Online (Sandbox Code Playgroud)

{% for post in paginator.posts %}
Run Code Online (Sandbox Code Playgroud)

不会显示任何帖子(它们与第一个标签一起显示).

我的_config.yml文件确实添加了以下内容:

paginate: 1
paginate_path: "page:num"
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用其他分页符标签{{ paginator.total_posts }},则不会出现任何内容.

我是通过本地部署来尝试这个,但是最后的页面会进入github页面.任何人都可以告诉我为什么它看起来像paginator标签不起作用?

html pagination jekyll github-pages

9
推荐指数
2
解决办法
2663
查看次数

iOS 14 从 UIView 呈现 UIMenu

iOS 14UIMenu似乎可以从 anyUIBarButtonItemUIButton/呈现UIControl,但我如何从通用 呈现它UIView

ios uimenu ios14

7
推荐指数
1
解决办法
3087
查看次数

重新加载UITableView部分时,所有部分都会闪烁

我正在使用UITableViewController,并且正在使用:

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:sectionNumber] withRowAnimation:UITableViewRowAnimationNone];
Run Code Online (Sandbox Code Playgroud)

重新加载tableview的单个部分(为新单元格的插入设置动画).问题是,每次进行此调用时,所有部分及其单元格都会短暂闪烁.如果我使用,这不会发生

[self.tableview reloadData];
Run Code Online (Sandbox Code Playgroud)

但无论我使用哪一行动画,都会发生.

我知道我可以使用insertRowsAtIndexPaths:withRowAnimation:,但我目前有一个不允许我使用它的竞争条件.我会在某个时候解决这个问题,但与此同时我想知道为什么在重新加载单个部分时所有部分单元格都会闪烁.此外,如果我可以关闭闪光灯并只为单元格的插入/删除设置动画,那将是理想的选择.

objective-c uitableview ios

6
推荐指数
1
解决办法
1167
查看次数

Xcode 5.1打破了一些测试

自从更新到Xcode 5.1以来,我在尝试运行单元测试(XCTestSuite)时遇到了错误.当我运行单独的测试方法时,我Error while reading test scope bundle在控制台上得到错误而没有结果.当我运行测试文件的完整实现时,我看到:

Unable to get entitlements for client task. Error: Error Domain=NSPOSIXErrorDomain Code=-1 "The operation couldn’t be completed. (POSIX error -1 - Unknown error: -1)"
Run Code Online (Sandbox Code Playgroud)

然后测试似乎开始按预期运行.

xcode unit-testing ios xctest xcode5.1

6
推荐指数
1
解决办法
1710
查看次数

iOS 7不再使用XCode 4.6.3

我有XCode版本4.6.3并且刚刚将我的iPhone 4上的操作系统升级到iOS 7.当我尝试在我的设备上运行我的代码时,我收到以下错误:

Xcode无法使用所选设备运行.

没有配置的iOS设备可用兼容的iOS版本.将iOS设备与最新版本的iOS连接以运行您的应用程序或选择iOS模拟器作为目标.

Organizer我看到以下消息:

iOS SDK的此安装不支持"My Phone的名称"上的iOS版本.请将设备恢复到下面列出的操作系统版本,或更新到最新版本的iOS SDK; 这是可用的.

这里的链接只是提示我登录会员中心,不会让我关注最新的SDK.

我的部署目标是iOS 6.1,我不想将其提升到7.0,因为我们的大多数用户都在iOS 7之前.我正在运行OS X版本10.8.3,我可以升级我的SDK吗?我一定要吗?我怎样才能使我的SDK与iOS 7和iOS 7之前的设备兼容?

xcode ios xcode4.6 ios7

5
推荐指数
2
解决办法
7659
查看次数

Objective-C iOS开发在设置变量时使用viewDidLoad或initWithCoder以及为什么?

所以看起来我应该设置我的成员变量viewDidLoad- 但我很困惑为什么设置这些变量initWithCoder失败,因为两者都在程序的开头被调用.

特别是我有一行代码:

[worldView setMapType:MKMapTypeSatellite];
Run Code Online (Sandbox Code Playgroud)

其中worldView是一个IBOutlet MKMapView对象.它工作viewDidLoad,但不是initWithCoder.

iphone objective-c iboutlet ios initwithcoder

3
推荐指数
1
解决办法
894
查看次数

添加约束时,表视图消失

我有一个容器视图:

1

我有一个表格视图,我以编程方式添加到容器中:

self.searchResultsSourcesTVC = [storyboard instantiateViewControllerWithIdentifier:@"searchResultsSourcesTVC"];    
[self.searchResultsContainer addSubview:self.searchResultsSourcesTVC.view];
Run Code Online (Sandbox Code Playgroud)

这样的结果是表视图不会自动调整大小以适应容器; 它似乎在屏幕的南边延伸了很多,只要滚动条可以完全消失在屏幕的南边.但它确实显示了表格和搜索结果.

所以我试图添加一个约束(我使用自动布局)使表视图的垂直边界与容器视图的垂直边界匹配:

UITableView *tableView = self.searchResultsSourcesTVC.tableView;
NSDictionary *views = NSDictionaryOfVariableBindings(tableView);

tableView.translatesAutoresizingMaskIntoConstraints = NO; // without this line there are conflicts

[self.searchResultsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableView]|" options:0 metrics:Nil views:views]];
[self.view layoutIfNeeded]; // not sure whether this line is necessary
Run Code Online (Sandbox Code Playgroud)

现在根本没有桌子.只是一个空白的视图.

我究竟做错了什么?以编程方式将表视图添加到容器视图并使表视图的边界与容器视图的边界共同延伸的最佳方法是什么?谢谢

objective-c ios autolayout nslayoutconstraint

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