视频存储不了,当可以存储后又无法通过ID判断输出

视频存储不了,当可以存储后又无法通过ID判断输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#define NSLog(FORMAT, ...) fprintf(stderr,"%s",[[NSString   stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])
#import <Foundation/Foundation.h>
#import "UsernameandPassword.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
         
        NSLog(@"******************iOS学习系统注册界面******************\n");
        UsernameandPassword *u1 = [[UsernameandPassword alloc]init];
        UserAdministration *ua = [[UserAdministration alloc]init];
        [ua Userregistration];
        u1.userAd = ua;
         [u1 UserSignin];
        [u1 FunctionSelection];
    }
    return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
#import <Foundation/Foundation.h>
#import "UserAdministration.h"
@interface UsernameandPassword : NSObject
@property(nonatomic,strong)NSString *Username;
@property(nonatomic,strong)NSString *Password;
@property(nonatomic,strong)UserAdministration *userAd;
@property(nonatomic,strong)NSString *addvideoID;
@property(nonatomic,strong)NSString *addvideoname;
@property(nonatomic,strong)NSMutableArray *addv;
-(void)UserSignin;
-(void)FunctionSelection;
-(id)initWithAddv:(NSMutableDictionary *)addv AddvideoID:(NSString *)addvideoID Addvideoname:(NSString *)addvideoname;
@end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#define NSLog(FORMAT, ...) fprintf(stderr,"%s",[[NSString   stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])
 
 
@implementation UsernameandPassword
/*
-(id)initWithAddv:(NSMutableDictionary *)addv AddvideoID:(NSString *)addvideoID Addvideoname:(NSString *)addvideoname{
 
    self = [super init];
    if (self) {
 
        self.addv = addv;
        self.addvideoID = addvideoID;
        self.addvideoname = addvideoname;
 
    }
    return self;
}
*/
 
 
-(void)UserSignin{
     
     
    //用户登录
    NSLog(@"******************iOS学习系统登录界面******************\n");
    NSLog(@"是否登录:\n1登录\n2不登录\n");
    //登录选项
    int LoginOptions = 0;
    scanf("%d",&LoginOptions);
     
     
    if (LoginOptions == 1) {
            //用户名
            NSLog(@"请输入登录用户名:");
             
            char buffer1[1000];
             
            scanf("%s",buffer1);
             
            NSString * youname = [NSString stringWithUTF8String:buffer1];
             
            //用户密码
            NSLog(@"请输入登录密码:");
             
            char buf2[1000];
             
            scanf("%s",buf2);
             
            NSString * youpassword = [NSString stringWithUTF8String:buf2];
         
            //判断输入的用户名和密码是否和注册时的一致
            if(youname == self.userAd.flag && youpassword == self.userAd.fla){
                 
                NSLog(@"\n登录成功\n");
                NSLog(@"******************iOS学习系统功能选择界面******************\n");
                NSLog(@"请输入要选择的功能\n");
                 
            }else{
                NSLog(@"用户名或密码错误,请重新输入\n");
                [self UserSignin];
            }
         
    }else{
         
        NSLog(@"退出学习系统\n");
    }
     
}
 
 
 
-(void)FunctionSelection{
     
    NSMutableDictionary *addv = [[NSMutableDictionary alloc]init];
    //登录后功能选择:1>1>2>1    这样就可以一直循环
     
    //登录后操作
    NSLog(@"1 观看iOS学习视频\n2 下载iOS学习资料\n3 直接退出\n");
    //功能选择
    int a = 1;
    int b = 0;
    while (a > b) {
         
     
    int Function = 0;
    scanf("%d",&Function);
     
    if (Function == 1) {
         
        NSLog(@"视频为空\n观看iOS学习视频中……\n请输入要选择的功能:\n");
        NSLog(@"1 观看iOS学习视频\n2 下载iOS学习资料\n3 直接退出\n");
        //观看视频
        int WatchVideo = 0;
        scanf("%d",&WatchVideo);
         
        if (WatchVideo == 1) {
            NSLog(@"1 查询所有iOS视频\n2 通过ID选择播放某一iOS视频\n3 添加一个新的iOS视频\n4 删除某一iOS视频\n");
            //通过ID播放视频
            int IdPlay = 0;
            scanf("%d",&IdPlay);
            if (IdPlay == 1) {
                NSLog(@"观看iOS学习视频中……\n");
            }else if (IdPlay == 2){
                 
                NSLog(@"请输入要选择观看的视频ID\n");
                //播放ID视频
//                int VideoiD = 0;
//                scanf("%d",&VideoiD);
                 
                char VID[1000];
                scanf("%s",VID);
                NSString *VideoiD = [NSString stringWithUTF8String:VID];
                 
                if (VideoiD == 1) {
                     
                    NSLog(@"你查找的视频不存在\n观看学习视频中……\n请输入要选择的功能:\n");
                    NSLog(@"1 观看iOS学习视频\n2 下载iOS学习资料\n3 直接退出\n");
                     
                }else if(VideoiD == self.addvideoID){   //通过ID查找之前存储的视频
                     
                    NSArray *str1 = [self.addv valueForKey:self.addvideoID];
                    NSLog(@"%@\n",str1);
                    NSLog(@"%@",self.addvideoID);
                    [self FunctionSelection];
                     
                }
            }else if (IdPlay == 3){
                 
                //添加视频
                NSLog(@"请输入视频ID\n");
                 
                char adv[1000];
                scanf("%s",adv);
                NSString *addvideoID = [NSString stringWithUTF8String:adv];
                 
                NSLog(@"请输入视频名称\n");
                 
                char advn[1000];
                scanf("%s",advn);
                NSString *addvideoname = [NSString stringWithUTF8String:advn];
                
                 
                [addv setValue:addvideoname forKey:addvideoID];
                 
                NSLog(@"%@",addv);
                [self FunctionSelection];
                 
            }else if (IdPlay == 4){
                //删除视频
                NSLog(@"请输入需要删除的视频ID\n");
               // [self.addv removeObjectForKey:addvideoID];
                [self FunctionSelection];
            }
             
        }
    }else if (Function == 2){
         
        NSLog(@"1 下载所有iOS视频\n2 通过ID选择下载某一iOS视频\n");
         
    }else if (Function == 3){
         
        NSLog(@"退出\n");
         
    }
        a++;
    }
     
}
 
@end
1
2
3
4
5
6
7
8
9
10
#import <Foundation/Foundation.h>
 
@interface UserAdministration : NSObject
 
-(void)Userregistration;
@property(nonatomic,strong)NSString *flag;
@property(nonatomic,strong)NSString *fla;
-(id)initWithFlag:(NSString *)flag Fla:(NSString *)fla;
 
@end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#import "UserAdministration.h"
#import "UsernameandPassword.h"
#define NSLog(FORMAT, ...) fprintf(stderr,"%s",[[NSString   stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String])
@implementation UserAdministration
 
-(id)initWithFlag:(NSString *)flag Fla:(NSString *)fla{
    self = [super init];
    if (self) {
        self.flag = flag;
        self.fla = fla;
    }
    return self;
}
 
    //用户注册信息
-(void)Userregistration{
     
     
    NSLog(@"请输入注册用户名:");
     
    char buffer[1000];
     
    scanf("%s",buffer);
     
    self.flag = [NSString stringWithUTF8String:buffer];
     
     
    NSLog(@"请输入注册密码:");
     
    char buf[1000];
     
    scanf("%s",buf);
     
    self.fla = [NSString stringWithUTF8String:buf];
     
    NSLog(@"注册成功\n");
     
}
@end


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
Tender10 2017-12-08 16:58:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-(void)addVideo{
    NSLog(@"请输入要添加的视频名称 \n");
    char buffer[1000];
    scanf("%s",buffer);
    NSString * name = [NSString stringWithUTF8String:buffer];
     
    NSLog(@"请输入要添加的视频ID ID不能重复 \n");
    scanf("%s",buffer);
    NSString * key = [NSString stringWithUTF8String:buffer];
    // 这里将名称和ID存入到可变字典中
    NSMutableDictionary *item = [[NSMutableDictionary alloc]initWithObjectsAndKeys:name,key, nil];
    // 再将这整个信息作为一个元素存入到存放时频的数组中
    [videoArray addObject:item];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#pragma 根据ID号查询视频
-(void)selectVideoWithID:(int)videoID{
    // 用于判断是否有这个视频存在
    BOOL hasFind = false;
    // 首先从数组中循环遍历取出所有的元素,也就是存放ID和昵称的字典
    for (NSMutableDictionary *item in videoArray) {
        // 判断字典是否为空
        if (item != nil && item.allKeys.count != 0) {
            // 不为空遍历出字典中所有的key即ID号
            for (NSString *key in item.allKeys) {
                // 判断ID号是否和输入的ID号相等,videoID传入的参数即键盘输入的ID号
                if (key.intValue == videoID) {
                    // 相等则取出对应ID号的值,即名称
                    NSString *value = [item objectForKey:key];
                    // 打印出相关信息
                    NSLog(@"视频ID:%@ 视频名称:%@",key,value);
                    // 并将hasFind赋值为true,跳出循环
                    hasFind = true;
                    break;
                }
            }
        }
    }
    // 如果没有视频,就会判断输出视频不存在
    if (!hasFind) {
        NSLog(@"您查找的视频不存在");
    }
}

你的代码比较乱,建议一个功能,写在一个方法中,这样随时调用就可以了,如上所示,分功能模块,减少代码的耦合度。

  • 提问者 楼上大白 #1
    我该怎么把那些功能分开
    2017-12-09 14:49:35
  • 提问者 楼上大白 #2
    我知道该怎么分开了,还有,助教,你的代码有红色警告啊
    2017-12-09 15:31:44
  • 提问者 楼上大白 #3
    助教,写着写着好乱啊,不知道该怎样改
    2017-12-09 15:49:06
Tender10 2017-12-08 16:50:32

你的菜单展示的顺序也还是有一定的问题啊,功能选择的时候总是会先出现之前的菜单,你先调整一下菜单的调用顺序。

  • 提问者 楼上大白 #1
    我也想一个功能一个方法,只不过分开的话我不知道如何实现if的连续判断
    2017-12-08 20:55:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码