小编Sim*_*een的帖子

在iOS 8共享扩展程序和主应用程序之间共享数据

最近,我一直在制作一个简单的iOS 8共享扩展来了解系统的工作原理.正如Apple在其App Extension编程指南中所述:

默认情况下,您的应用及其扩展程序无法直接访问彼此的容器.

这意味着扩展程序和包含应用程序不共享数据.但在同一页面上,Apple带来了一个解决方案:

如果您希望包含应用及其扩展能够共享数据,请使用Xcode或Developer门户为应用及其扩展启用应用组.接下来,在门户中注册应用程序组,并指定要在包含的应用程序中使用的应用程序组.

然后,可以使用NSUserDefaults在包含应用程序和扩展程序之间共享数据.这正是我想做的.但由于某种原因,它不起作用.

在同一页面中,Apple建议使用标准默认值:

var defaults = NSUserDefaults.standardUserDefaults()
Run Code Online (Sandbox Code Playgroud)

在WWDC演示文稿(217)中,他们提出了一个共同的方案:

var defaults = NSUserDefaults(suiteName: kDefaultsPackage)
Run Code Online (Sandbox Code Playgroud)

此外,我为包含应用目标和扩展目标的应用组启用了相同的应用组名称: XCode目标功能,应用程序组

但所有这些设置都是无用的.我无法从扩展程序中检索存储在包含应用程序中的数据.就好像两个目标正在使用完全不同的NSUserDefaults存储.

所以,

  1. 这种方法有解决方案吗?
  2. 如何在包含应用和共享扩展之间共享简单数据?数据只是API的用户凭据.

swift xcode6 ios8 ios-app-extension

63
推荐指数
4
解决办法
4万
查看次数

iOS Keychain Services:只允许kSecAttrGeneric Key的特定值?

我正在尝试使用此Apple示例代码中提供的KeychainWrapper类:https://developer.apple.com/library/content/samplecode/GenericKeychain/

在示例应用程序中,该类具有以下开始的init方法:

- (id)initWithIdentifier: (NSString *)identifier accessGroup:(NSString *) accessGroup;
{
    if (self = [super init])
    {
        // Begin Keychain search setup. The genericPasswordQuery leverages the special user
        // defined attribute kSecAttrGeneric to distinguish itself between other generic Keychain
        // items which may be included by the same application.
        genericPasswordQuery = [[NSMutableDictionary alloc] init];

        [genericPasswordQuery setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass];
        [genericPasswordQuery setObject:identifier forKey:(id)kSecAttrGeneric];
Run Code Online (Sandbox Code Playgroud)

在示例应用程序中,它使用两个值作为标识符字符串."密码"和"帐号".在我的代码中实现类时,我使用了一些自定义标识符,但代码不起作用.对SecItemAdd()的调用失败.经过一些测试后,似乎使用"密码"和"帐号"以外的值作为标识符不起作用.

有谁知道允许的值和/或是否可以为您的钥匙串项目设置自定义标识符?

keychain ios

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

如何正确实现didReceiveWriteRequests?iOS6 CoreBluetooth

我实现了iOS CoreBluetooth客户端和服务器来发送数据

client site
[self.connectedPeripheral writeValue:mainData forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];
Run Code Online (Sandbox Code Playgroud)

- (void)peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic 
{
   NSString *s= [[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding];
   NSLog(@"didWriteValue characteristic.value: %@ ", s);
} 
Run Code Online (Sandbox Code Playgroud)

和服务器站点

- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests
{
  NSData *res= [[NSString stringWithFormat:@"Hello"] dataUsingEncoding:NSUTF8StringEncoding];
 [self.peripheral updateValue:res
                        forCharacteristic:self.writeCharacteristic
                     onSubscribedCentrals:nil];
 [peripheral respondToRequest:aReq withResult:CBATTErrorSuccess];
}
Run Code Online (Sandbox Code Playgroud)

但是,客户端无法接收任何数据.任何的想法?谢谢你的帮助.

bluetooth ios core-bluetooth ios6

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

如何改变iOS7的按钮颜色

我已经为iOS7开发了一款具有这种设计的应用程序

在此输入图像描述

你可以看到我的所有BackButton都有一个蓝色箭头(使用UINavigationController和segues),我想把它们变成红色,这是我的代码:

[UIBarButtonItem   appearance]setTintColor:(UIColorFromRGB(toolbarTintColor))];
[[UIBarButtonItem  appearance]setTitleTextAttributes:textAtributesDictionaryNavBarButtons forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

但结果只适用于所有其他按钮,任何帮助,我会很感激

在此先感谢您的支持

back-button ios ios7 xcode5

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

如何通知父视图控制器的子视图控制器已自行删除?

子视图控制器的实现中的以下代码删除了子视图控制器:

- (void)commandFinishVC
{
    [ self.view removeFromSuperview];
    [ self removeFromParentViewController ];
}
Run Code Online (Sandbox Code Playgroud)

子视图控制器及其视图已成功删除,但父母如何通知此情况?-viewDidDisappear未被调用,并且已弃用-viewDidUnload.

从我可以找到的例子中,总是假设父视图控制器是提名被删除的孩子的事件的发起者,但是(对我来说)孩子应该在其完成的逻辑中是自主的.

是否应该通过利用self.parentViewController属性并在父视图控制器中使用类似以下内容来调用remove方法?

- (void)commandFinishVC
{
    [ childVC.view removeFromSuperview];
    [ childVC removeFromParentViewController ];
}
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios

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

在我的应用上显示错误的启动图像.试图以几种方式取代它

我的应用启动图像有问题.在开发的早期,我添加了一个示例图像作为启动图像.现在,当应用程序准备发布时,我无法更改启动映像.

我尝试在项目摘要中的xcode中更改它,从项目文件中删除文件,并用正确名称替换新图像的文件.没运气.它仍然在所有设备上显示错误.

我甚至没有项目中的图像了.

这里有谁知道什么是错的,或者经历过这样的事情?

发布图片适用于iPhone和iPad,肖像.

xcode ios

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

*修改*UI按钮位置(Iphone SDK)

我正在玩UI按钮,只是为了了解可以用它们做些什么.到目前为止我只有一个问题:

如何修改 UIButton的位置?

- (IBAction)buttonClicked:(id)sender
{
   UIButton *senderB = sender;

   CGPoint position = senderB.frame.origin;
   CGSize size = senderB.frame.size;
   senderB.frame = CGRectMake(position.x,position.y + 10,size.width,size.height);
}
Run Code Online (Sandbox Code Playgroud)

上面的工作很好,但是,每次我想简单地改变一个时创建一个新的CGrect对我来说似乎相当低效.

有没有办法让我直接设置senderB.frame.origin.x等的值?

iphone uibutton ios

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

UIWebView崩溃,我不明白为什么

我无法解决这个问题,因为无论我做什么让我的问题得以解决,我都会遇到这个问题

继承人的踪迹

 $0 = 0x1f8f9a10 (

    0   ???                                 0x02b04144 0x0 + 45105476,
    1   TheAppName                          0x001016e0 start + 0,
    2   Foundation                          0x34334599  + 72,
    3   WebCore                             0x399e7bfb  + 82,
    4   UIKit                               0x3595b493  + 182,
    5   UIKit                               0x358d7d1f  + 382,
    6   UIKit                               0x358d7d33  + 402,
    7   UIKit                               0x358d7d33  + 402,
    8   UIKit                               0x358d7431  + 360,
    9   UIKit                               0x358d72c3  + 30,
    10  UIKit                               0x35ce2fef  + 386,
    11  UIKit                               0x35ce3879  + 464,
    12  UIKit                               0x35ce63d3  + 698,
    13  UIKit                               0x35ce5e49  + 552,
    14  UIKit …
Run Code Online (Sandbox Code Playgroud)

uiwebview ios

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