小编Tej*_*uri的帖子

swift segue到之前的VC数据

我期待执行两个不同的segue.

我有一个由"当前模态"输入的VC .从那个VC我有另一个segue(Push)通向TableView VC.

问题1

我希望能够在触摸一行后从表格视图返回到之前的VC.所以我的问题是我不知道使用什么类型的segue来返回一步但同时发送数据.

我有一个关闭按钮设置为"放松到VC",但这只是关闭我的VC.

问题2

从TableView我有另一个segue(推送)通向另一个TableView VC. - 您选择类别,然后选择子类别.我的问题是,我不知道如何返回一步或如何对从两个表视图控制器发送信息的VC1进行segue .

谢谢

iphone xcode ios swift

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

为什么我不能在NSUserDefaults中存储NSDictionary?

我想把它NSDictionary存入NSUserDefaults.但是这样做会导致崩溃:

码:

NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    NSLog(@"response is %@",response);
    NSLog(@"erros is %@",error);

    NSDictionary* jsonDic = [NSJSONSerialization JSONObjectWithData:data
                                                            options:kNilOptions
                                                              error:&error];

    NSLog(@"json is %@",jsonDic);

    [[NSUserDefaults standardUserDefaults]setObject:jsonDic forKey:@"LoginResult"];
    [[NSUserDefaults standardUserDefaults]synchronize];
});
Run Code Online (Sandbox Code Playgroud)

调试:po jsonDic

{
    email = "tejanvm92@gmail.com";
    "first_name" = teja;
    "last_name" = nvm;
    phone = 54321456;
    "profile_image" = "<null>";
    role = User;
    success = 1;
    token = 0971994f904780d2c7532da0560c54ca;
    type = "AUTH_SUCCESS";
}
Run Code Online (Sandbox Code Playgroud)

崩溃日志:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', …
Run Code Online (Sandbox Code Playgroud)

objective-c nsdictionary nsuserdefaults ios

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

如何从Swift中的两个struct数组中删除常用项

在我的应用程序中,我有两个struct数组,我想从其中一个中删除常用项.我的结构:

struct PeopleSelectItem {
    var name = ""
    var id = ""
    var added = false
}
Run Code Online (Sandbox Code Playgroud)

我的阵列:

var people : [PeopleSelectItem] = []
var selectedPeople : [PeopleSelectItem] = []
Run Code Online (Sandbox Code Playgroud)

我想从people数组中删除项目(如果它们存在(通过id比较)在selectedPeople数组上).

我尝试了几个数组过滤和转换设置,但没有一个工作.我能在这做什么?

谢谢!

ios swift

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

使用联系人框架将联系人添加到组

我使用联系人组创建了一个组,然后我想将联系人添加到该组中。

        NSPredicate *predicate = [CNGroup predicateForGroupsWithIdentifiers:@[[[NSUserDefaults standardUserDefaults]objectForKey:@"groupIDentifier"]]];
        NSArray *groups = [store groupsMatchingPredicate:predicate error:&saveError];

        CNMutableContact *contact = [[CNMutableContact alloc] init];
        contact.familyName = @"Doe";
        contact.givenName = @"John";

        CNLabeledValue *homePhone = [CNLabeledValue labeledValueWithLabel:CNLabelHome value:[CNPhoneNumber phoneNumberWithStringValue:@"312-555-1212"]];
        contact.phoneNumbers = @[homePhone];

        CNSaveRequest *request = [CNSaveRequest new];
        CNGroup *group = [groups firstObject];
        [request addContact:contact toContainerWithIdentifier:group.identifier];

        if (![store executeSaveRequest:request error:&saveError]) {
            NSLog(@"error = %@", saveError);
        }
Run Code Online (Sandbox Code Playgroud)

错误是:

error = 错误域=CNErrorDomain Code=200“更新的记录不存在” UserInfo={CNInvalidRecordIdentifiers=(“45FFBB0D-C74B-4A14-8293-9099EA7DEF81:ABGroup”),NSLocalizedDescription=更新的记录不存在,NSLocalizedFailureReason=保存请求失败,因为它更新了不存在或已被删除的记录。}

我也尝试使用:

[request addMember:contact toGroup:[groups firstObject]];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,错误是:

error = Error Domain=CNErrorDomain Code=200 "Updated Record Does Not Exist" …
Run Code Online (Sandbox Code Playgroud)

ios cncontactstore

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

如何使用一个UIBezierPath创建两个不同颜色的笔划

我试图UIView用手指画线,它用一种颜色很好.如果我尝试更改颜色并再次绘制,则之前的UIBezierPath颜色也会更改为新颜色.因此,我无法绘制不同的颜色线,保持前一个颜色线UIView

我将所有属性(path,linecolor)设置为非原子和强大的属性 UIView

以供参考:

我的第一次抽奖:在此输入图像描述

我的第二次抽奖:在此输入图像描述

我的第三次抽奖: 在此输入图像描述

选择颜色后,我在颜色选择器委托方法中更改了我的UIView的描边颜色:

#pragma mark - FCColorPickerViewControllerDelegate Methods

-(void)colorPickerViewController:(FCColorPickerViewController *)colorPicker didSelectColor:(UIColor *)color {

      self.drawView.lineColor = color; //this works fine 

 //    self.drawView.path=[UIBezierPath bezierPath];  tried this to create new bezier path with new color, but this erases the olde bezier path and return new
//    [self.drawView.lineColor setStroke];     tried this
//    [self.drawView.lineColor setFill];  tried this

      [self dismissViewControllerAnimated:YES completion:nil]; //dismiss the color picker
}
Run Code Online (Sandbox Code Playgroud)

这是我的绘图方法:

- (id)initWithCoder:(NSCoder *)aDecoder 
{
    if (self = [super initWithCoder:aDecoder]) …
Run Code Online (Sandbox Code Playgroud)

objective-c uiview ios uibezierpath

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

同步后NSUserDefaults未保存

我的应用程序中有以下代码

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:kArchivedUsername forKey:userID];
    [defaults synchronize];
    NSLog(@"saved: %@", [defaults stringForKey:kArchivedUsername]);
Run Code Online (Sandbox Code Playgroud)

但是,输出是这样的:

2016-04-07 15:50:44.560 BP (Test)[18357:464518] saved: (null)
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么以及我能做些什么呢?

objective-c nsuserdefaults ios

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