小编taf*_*rel的帖子

了解NSRunLoop

谁能解释一下是NSRunLoop什么?所以我知道这NSRunLoop是一件与之相关的事情NSThread吗?所以假设我创建一个类似的线程

NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil];
[th start];

-(void) someMethod
{
    NSLog(@"operation");
}
Run Code Online (Sandbox Code Playgroud)

在这个线程完成他的工作之后?为什么使用RunLoops或在哪里使用?从Apple docs我已经阅读了一些东西,但对我来说并不清楚,所以请尽可能简单地解释

cocoa-touch objective-c nsrunloop ios

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

从swift中的dataTaskWithURL获得进度

dataTaskWithURL在数据下载时有没有办法从swift 获得进展?

NSURLSession.sharedSession().dataTaskWithURL(...)
Run Code Online (Sandbox Code Playgroud)

我需要在下载数据时显示进度条.

ios swift

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

UINavigationController和UINavigationItem之间有什么区别

我不明白有什么区别 self.navigationcontroller.navigationitemself.navigationitem 我有基于导航的应用程序和导航控制器的viewDidLoad方法rootViewController我通过使用此代码将NavigationItem titleView设置为自定义图像

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationItem.titleView =titleImage;
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果我试图通过这种方式改变titleview

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationcontroller.navigationItem.titleView =titleImage;
Run Code Online (Sandbox Code Playgroud)

一切都没发生.,当navigationcontroller将另一个视图推送到堆栈时,navigationitem的titleview被清除,引用设置为nil,而且我也注意到引用self.navigationcontroller.navigationitemself.navigationitem不相同.

uinavigationcontroller uinavigationitem ios

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

ios 8键盘扩展设置包

我正在尝试在ios 8上为自定义键盘扩展创建设置包.我已将设置包添加到键盘扩展目标.然后当加载键盘视图时,我试图以下列方式访问设置包.

BOOL autoCapitalizationEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoCapitalizationEnabled"];
Run Code Online (Sandbox Code Playgroud)

结果总是0,似乎程序无法访问设置包文件.

有没有人有扩展设置捆绑之前的问题?顺便说一下,这个东西与设置包的默认值无关,因为每次我在键盘启动前禁用并启用此属性以强制使用默认值.

ios settings.bundle ios8 ios-app-extension

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

如何在应用程序处于后台但未暂停时处理推送通知

我的应用程序接收推送通知,并显示相应的信息消息.但是,当我点击消息时,应用程序变为活动但应用程序didFinishLaunchingWithOptions未被调用,这是正确的,我认为,因为应用程序未被暂停,它只是暂停活动.问题是我如何确保用户在应用程序变为前台时单击消息?

apple-push-notifications ios

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

可视化格式语言,按钮宽度和高度约束

有没有办法用NSLayoutConstraints设置UIView的宽度和高度?例如,我有以下约束设置

subView.setTranslatesAutoresizingMaskIntoConstraints(false);
        let cons:NSArray =   NSLayoutConstraint.constraintsWithVisualFormat("[subView(99)]", options:nil, metrics: nil, views: ["subView":subView]);
        self.view.addConstraints(cons);
Run Code Online (Sandbox Code Playgroud)

这只设置宽度,如何添加高度?

objective-c ios nslayoutconstraint nsautolayout swift

7
推荐指数
2
解决办法
7625
查看次数

创建ios app演示视频

为ios应用程序录制视频的最佳方式是什么?我有一个商业应用程序,现在我想为我们的客户创建一些演示视频,任何建议?

iphone ios

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

使用 NSFetchedResultsController 了解瞬态属性

我开始使用 Core Data 创建一个应用程序,以检索我想使用 NSFetchedResultController 的分段表的数据,在来自苹果的示例中有两个附加属性。

  • 原始时间戳
  • 原始部分标识符

对于primitiveSectionIdentifier的情况,苹果说

相反,对于瞬态属性,您需要指定两个属性,并且必须编写代码来执行转换。

因为 sectionidentifier 是瞬态属性。但是 timeStamp 呢?这个属性不是瞬态的,为什么会有一个primitiveTimeStamp 属性?为什么有明确的 timeStamp 设置器?

- (void)setTimeStamp:(NSDate *)newDate {

    // If the time stamp changes, the section identifier become invalid.
    [self willChangeValueForKey:@"timeStamp"];
    [self setPrimitiveTimeStamp:newDate];
    [self didChangeValueForKey:@"timeStamp"];

    [self setPrimitiveSectionIdentifier:nil];
}
Run Code Online (Sandbox Code Playgroud)

或者它可能不是一个真正的二传手?_timeStamp=newDate 在哪里?

core-data transient nsfetchedresultscontroller ios

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

在后台模式上传图像

我有网络服务,我想用它来上传图像到服务器,由wsdl2objc生成的Web服务代理类,它使用NSOperation执行soap调用.假设在上传过程中我按下主页按钮,应用程序进入后台模式,那将是什么情况?上传过程会终止吗?或者过程无论如何都会完成.

background nsoperation grand-central-dispatch ios

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

UINavigationController回到了多个步骤

是否可以在UINavigationController中弹出多个viewcontroller?假设我想退两步.

cocoa-touch uinavigationcontroller ios

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

CFRelease(CFArrayRef)时崩溃

我有清除设备中地址簿的方法。方法如下。

-(void) clearAdressBook
{
    ABAddressBookRef addrBook=ABAddressBookCreate();
    CFArrayRef groups = ABAddressBookCopyArrayOfAllGroups(addrBook);
    if(groups)
    {
        CFIndex numGroups = CFArrayGetCount(groups);
        for(CFIndex idx=0; idx<numGroups; ++idx)
        {
            ABRecordRef groupItem = CFArrayGetValueAtIndex(groups, idx);

                CFArrayRef people=
                ABGroupCopyArrayOfAllMembers(groupItem);
                if(people)
                {
                    CFIndex peopleCount=CFArrayGetCount(people);
                    for(CFIndex ind=0;ind<peopleCount;++ind)
                    {
                        ABRecordRef person=CFArrayGetValueAtIndex(people, ind);
                        ABAddressBookRemoveRecord(addrBook, person, nil);
                        ABAddressBookSave(addrBook, NULL);
                        CFRelease(person);
                    }
                    CFRelease(people);//CRASH
                }

            }
        }

    CFRelease(groups);
}
Run Code Online (Sandbox Code Playgroud)

当我发布CFArrayRef应用程序崩溃时,这是怎么回事?据我所知,我必须释放从CF方法返回的所有对象,这些对象的名称包含复制或创建权吗?

objective-c core-foundation abaddressbook ios

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

ios以编程方式打电话而不退出应用程序

有没有办法以编程方式拨打电话而不退出当前的应用程序?我做了一项研究,但所有答案都是

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
Run Code Online (Sandbox Code Playgroud)

这不是我想要的,我还需要访问语音流.

objective-c core-foundation ios ios7

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

iOS上的Walkie Talkie

我想为ios创建一个walkie takie应用程序,我需要一个帮助才能开始.我需要使用哪个框架通过蓝牙/ WiFi实现p2p连接而无需LAN.

据我所知,Bonjour不是解决方案,因为iPhone/iPad无法创建Wifi网络,我说对了吗?

那么GameKit框架呢?或者可能是有助于将两个设备连接在一起的任何其他框架.

在应用程序商店中我找到了Voxer Walkie-Talkie应用程序,有谁知道他们使用了哪个框架?

networking bluetooth gamekit wifi ios

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