小编Sim*_*ker的帖子

当tableView的allowsMultipleSelectionDuringEditing属性为YES时,如何进行滑动到删除工作?

在iOS 5中,如果我allowsMultipleSelectionDuringEditing在UITableView上设置为YES,则滑动到删除不再有效.内置的Mail应用程序支持在编辑模式下滑动到删除和多个选择,我也想这样做.我该如何实现这一目标?

uitableview ios

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

直接访问Objective-C中的嵌套字典值

有没有办法在Objective-C中直接访问外部数组的内部数组?例如,对外部数据源的调用将返回以下对象:

{
bio = "this is the profile.bio data";
"first_name" = John;
"last_name" = Doe;
location =     {
    name = "Any Town, Any State";
};
metadata =    {
    pictures =    {
        picture = "https://picture.mysite.com/picture.jpeg";
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我希望能够访问例如location.name或metadata.pictures.picture数据.但是,点符号似乎不起作用.例如:

_gfbLocation = [result objectForKey:@"location.name"];
_gfbPicture = [result objectForKey:@"metadata.pictures.picture"];
Run Code Online (Sandbox Code Playgroud)

我能够访问此数据的唯一方法是首先将内部数组的内容设置为对象.思考?

iphone dictionary objective-c nsdictionary key-value-coding

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

如何在git的contrib目录中正确安装这些工具?

Git 包含一组由第三方提供的工具.我不确定我应该如何正确使用这些工具.

例如,我想使用git-subtree.似乎有很多方法可以使用它:

  1. 复制到我的路径

    cp /path/to/git-subtree.sh /usr/local/bin/git-subtree
    chmod +x /usr/local/bin/git-subtree
    
    Run Code Online (Sandbox Code Playgroud)

    工作正常,感觉有点hacky.

  2. 符号链接到我的路径

    chmod +x /path/to/git-subtree.sh
    ln -s /path/to/git-subtree.sh /usr/local/bin/git-subtree
    
    Run Code Online (Sandbox Code Playgroud)

    也工作,感觉稍微不那么黑客

  3. 使用git别名

    将以下内容添加到我的全局.gitconfig文件中:

    [alias]
        subtree = !/path/to/git-subtree.sh
    
    Run Code Online (Sandbox Code Playgroud)

    然后又好老chmod:

    chmod +x /path/to/git-subtree.sh
    
    Run Code Online (Sandbox Code Playgroud)

    工作,感觉很好,git-ish.

  4. 使用Makefile

    按照INSTALL文件.

    cd /path/to/git-subtree.sh
    make
    make install
    make install-doc
    
    Run Code Online (Sandbox Code Playgroud)

    对我不起作用,它会尝试安装到不存在的路径.也许这是因为我使用自制软件安装git 而不是从源代码安装?我懒得去调查; 我已经有三种工作方式.:)

所以我的问题是,哪些是安装git-contrib附加组件的首选方式?甚至还有一种首选方式吗?有没有其他选择我没有建议比上面列出的更好?

git

23
推荐指数
3
解决办法
9365
查看次数

如何安装和使用iOS 6中包含的其他亚洲字体?

我正在写一个需要显示中文字符的iOS 6 iPhone/iPad应用程序.iOS 6中默认安装的亚洲字体还有很多不足之处.但是,在Apple的iOS 6:字体列表页面的底部,Apple声明:

"应用程序还可以根据需要安装以下[主要是亚洲]字体."

亚洲字体系列不会出现在提供的列表中[UIFont familyNames].我没有在UIFont类文档或Apple Developer论坛中找到有关如何安装可能已包含在iOS 6中但尚未"安装"的字体的任何信息.有任何想法吗?

objective-c uifont ios6

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

UIActivity activityViewController在iPad上以模态方式呈现,而不是在popover中呈现

在iOS 6中使用客户UIActivity子类时,可以指定从初始UIActionViewController视图中选择操作时将显示的自定义视图控制器.您可以通过从UIActivity子类的activityViewController方法返回对自定义视图控制器的引用来完成此操作.

根据UIActivity类参考:

activityViewController

此方法的默认实现返回nil.使用视图控制器提供附加UI的子类可以重写此方法以返回该视图控制器.如果此方法返回有效对象,系统将为您显示返回的视图控制器,而不是调用该performActivity方法.在iPad上,您的视图控制器显示在弹出窗口内.在iPhone和iPod touch上,视图控制器以模态呈现.

您的自定义视图控制器应提供自定义UI的视图,并应处理这些视图中的任何用户交互.完成活动后,请勿自行关闭视图控制器.相反,调用activityDidFinish:方法并让系统为您解雇它.

请注意第一段末尾的位:在iPad上,视图控制器显示在弹出框内.在iPhone和iPod touch上,视图控制器以模态呈现.

但是,在iPad上activityViewController,无论我如何呈现UIActivityViewController(无论是模态还是通过弹出窗口),返回的视图控制器始终以模态方式显示.当通过弹出窗口呈现时,它会导致崩溃,因为它不认为它被解雇了.

我究竟做错了什么?这是iOS 6中的错误吗?


更新:这是一个简单的Xcode项目,用于说明问题.随意克隆它并玩游戏,看看你是否能看到我们出错的地方:github.com/simonwhitaker/GSActivityDemo

sdk popover ipad ios uiactivity

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

查询Core Data中多个子实体类型的所有对象

鉴于以下人为的例子:

我的Awesome Pet Shop应用程序的核心数据实体图(正在申请专利)

我想查询我的数据,以查找猫或狗的所有对象.我希望结果集按名称排序,无论种类如何,所以取出所有的猫然后取出所有的狗都行不通.我想在一个查询中执行此操作.

一种方法是向Pet添加一个petType字段,为每个记录提供一个petType值,用于标识它所属的子实体,然后查询如下:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Pet" 
                                          inManagedObjectContext:myMOC];
[fetchRequest setEntity:entity];

// petType values: 1 = dog, 2 = cat, 3 = goldfish. Yuk.
NSPredicate *p = [NSPredicate predicateWithFormat:@"petType = 1 OR petType = 2"]
[fetchRequest setPredicate:p];

// etc...
Run Code Online (Sandbox Code Playgroud)

但仅仅想到这样做会让我不寒而栗.有没有更好的办法?


更新:感谢所有回复的人 - 这里有一些非常好的,经过深思熟虑的解决方案,我很感激所有这些.

为了给出这个上下文,真正的数据模型比这更复杂(不是它们总是如此),但它组织得非常好.在我的时间里,我设计的数据模式比我公平的数据模式更多,我很高兴实体及其关系得到充分考虑.这个问题的出现是因为(为了扩展已经摇摇欲坠的人为例子)客户原本想要:

  • 显示所有宠物列表的视图
  • 显示金鱼列表的视图
  • 显示猫列表的视图
  • 显示狗列表的视图

到现在为止还挺好.但他们也想要一个显示所有猫和狗的综合列表的视图"因为小女孩喜欢猫和狗".(最初它是猫和金鱼,出于同样的原因.)实际上并没有一种方法可以自然地对那些具体实体的子集进行分组; 它真的很随意.

到目前为止,Dave Dribin的"抽象中间实体"方法似乎是最干净的解决方案,尽管在我的情况下我认为它会有点人为; 真正唯一可以如实标记中间实体的方式就是"ThingLittleGirlsLike"!:)

cocoa core-data objective-c

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

为什么GCC会显示错误的printf格式说明符的重复警告?

我很好奇为什么GCC 在编译这个文件时会向我显示两个相同的警告:

$ cat test.c 
#include <stdio.h> 

int main (int argc, char const *argv[])
{
    long foo = 0l;
    printf("%i\n", foo);

    return 0;
}
$ gcc-4.2 -Wall test.c 
test.c: In function ‘main’:
test.c:6: warning: format ‘%i’ expects type ‘int’, but argument 2 has type ‘long int’
test.c:6: warning: format ‘%i’ expects type ‘int’, but argument 2 has type ‘long int’
Run Code Online (Sandbox Code Playgroud)

有趣的是,Clang还提出了两个警告:

$ clang test.c 
test.c:6:14: warning: conversion specifies type 'int' but the argument has type 'long' [-Wformat]
    printf("%i\n", …
Run Code Online (Sandbox Code Playgroud)

c gcc compilation clang

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

更改NSMutableArray中的值

我有一个加载值的NSMutableArray.

稍后在应用程序中,我需要更改数组中其中一个元素的值.

我该如何做到这一点?

谢谢托尼

cocoa objective-c nsmutablearray

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

如何访问字典或散列中的第n项?

我有一个键和值的字典,例如:

{
    fred: 1,
    dave: 2,
    lily: 3
}
Run Code Online (Sandbox Code Playgroud)

如何获得字典中的第二个元素 - {dave:2}在这种情况下?


背景:我已经在SO上以这样或那样的形式多次询问过这个问题了,所以我想我会写一个Q&A页面作为一个社区维基,人们可以被引用,这可能有希望成为这个的规范答案题.

此问答适用于字典,因为它们以多种不同语言实现.不同的语言使用不同的名称来指代基本相同的数据结构 - 例如,它们在Perl中称为哈希,在Python中称为词典.在Objective-C中,它们是NSDictionaryNSMutableDictionary类的实例 .

language-agnostic dictionary hashmap

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

在iOS中调用Google Toolbox for Mac NSString类别方法时无法识别的选择器

我正在构建一个用于iOS项目的静态库,我想解码从Web服务返回的XML实体.我抓住了Google Toolbox for Mac并将以下文件添加到我的项目中:

  • GTMDefines.h
  • GTMNSString + HTML.h
  • GTMNSString + HTML.m

然后在我自己的.m文件中我这样做:

#import "GTMNSString+HTML.h"

// then in one of my methods:
NSString *value = [anotherNSStringValue gtm_stringByUnescapingFromHTML];
Run Code Online (Sandbox Code Playgroud)

代码编译得很好,但是当我运行使用我的静态库的应用程序时,它会崩溃NSInvalidArgumentException,抱怨gtm_stringByUnescapingFromHTML选择器无法识别NSString:

2011-02-10 12:21:38.401 MyApp[20356:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString gtm_stringByUnescapingFromHTML]: unrecognized selector sent to instance 0x71403e0'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x0111bbe9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x012705c2 objc_exception_throw + 47
    2   CoreFoundation                      0x0111d6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c categories google-toolbox-for-mac ios

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