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

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

#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;
}
#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
#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
#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
#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
-(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];
}
#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 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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