小编的电脑时间与日期不对了,添加一个ID

2019-08-10 作者:小鱼儿玄机30码   |   浏览(192)

苹果原生推送,苹果

很久以前写demo,现在回忆下~~~可能有点错误

 GIthub:

步骤:

1)添加APP ID.

苹果开发者中心: Identifiers--->App IDs 添加一个ID,比如我的Name:YFPushTest, 这里的ID一定是项目的Bundle Identifier , 比如:com.YFPushTest.BigShow.YFPushTest;

2)生成苹果推送证书(生产&测试)

取名比如: com.YFPushTest.BigShow.YFPushTest, 选择APP ID的时候,要选择我们刚才创建的那个,不要选其他了的(很多AppID时候,容易忘记)

3)生成描述文件

取名:YFPushTestProfile, 同样, AppID不要选错了

4)上代码:

  1 #import "AppDelegate.h"
  2 
  3 @interface AppDelegate ()
  4 
  5 @end
  6 
  7 @implementation AppDelegate
  8 
  9 
 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 11 {
 12     //    application.applicationIconBadgeNumber = 0;
 13     
 14     if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0)
 15     {
 16         // 1.请求授权可以给用户发送通知
 17         UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound | UIUserNotificationTypeBadge | UIUserNotificationTypeAlert categories:nil];
 18         
 19         [application registerUserNotificationSettings:settings];
 20     }
 21     else
 22     {
 23         [application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
 24     }
 25     
 26     if (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey])
 27     {
 28         // 跳转
 29     }
 30     
 31     return YES;
 32 }
 33 
 34 
 35 /**
 36  *  远程推送注册成功
 37  *
 38  *  @param deviceToken deviceToken
 39  */
 40 - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
 41 {
 42     // 25bb75ac 3ffcebd7 90d9f517 1ebca904 154a367a 87781e5d b9ea288e 37fdf487
 43     NSLog(@"-----deviceToken ---- ---- %@ devDesc ---%@", deviceToken,deviceToken.description);
 44     
 45     //tokenStr 得到可用的token。
 46     NSString *tokenStr = [NSString stringWithFormat:@"%@",deviceToken];
 47     tokenStr = [tokenStr stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];//将其中的<>去掉
 48     tokenStr = [tokenStr stringByReplacingOccurrencesOfString:@" " withString:@""];//将其中的空格去掉
 49     
 50     NSLog(@"token--- %@",tokenStr);
 51 //    //注册成功,返回token
 52 //    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"APNS返回的Token:" message:tokenStr delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
 53 //    
 54 //    [alert show];
 55     
 56     //    applicationIconBadgeNumber
 57 }
 58 
 59 
 60 /**
 61  *  注册失败
 62  *
 63  */
 64 - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
 65 {
 66     
 67     NSLog(@"注册失败 ---- %@",error);
 68     NSString *tokenStr = [NSString stringWithFormat:@"%@",error];
 69     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"注册失败!" message:tokenStr delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
 70     [alert show];
 71     NSLog(@"注册失败%@",error);
 72     
 73     
 74 }//NS_AVAILABLE_IOS(3_0);
 75 
 76 
 77 
 78 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
 79 {
 80     NSLog(@"接收到推送通知 ---- %@", userInfo);
 81     
 82     /*
 83      
 84      "name" : "YFPushTest",
 85      "action_type" : "1",
 86      "message" : "您的车辆京KKKKKK于2016-4-22 驶入邯郸",
 87      "aps" : {
 88         "alert" : "This is some fancy message.",
 89         "badge" : 1,
 90         "sound" :  "您的车辆京KKKKKK于2016-4-22 驶入邯郸"
 91      };
 92      
 93      */
 94     
 95     //    application.applicationIconBadgeNumber -=1;
 96     //将推送消息以alert形式呈现
 97     NSString *message = [[userInfo objectForKey:@"aps"]objectForKey:@"alert"];
 98     
 99     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:message delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
100     
101     [alert show];
102 }
103 
104 
105 // This callback will be made upon calling -[UIApplication registerUserNotificationSettings:]. The settings the user has granted to the application will be passed in as the second argument.
106 - (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
107 {
108     
109     NSLog(@"ls---- %@",notificationSettings);
110     
111     // 2.注册远程通知
112     [application registerForRemoteNotifications];
113     
114 }//NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED;
115 
116 
117 // Called when your app has been activated by the user selecting an action from a remote notification.
118 // A nil action identifier indicates the default action.
119 // You should call the completion handler as soon as you've finished handling the action.
120 - (void)application:(UIApplication *)application handleActionWithIdentifier:(nullable NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void(^)())completionHandler
121 {
122     
123     NSLog(@"ios9新增 --- %@ -- %@ --- %@",identifier,userInfo,responseInfo);
124     
125     
126 }//NS_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED;
127 
128 
129 // Called when your app has been activated by the user selecting an action from a remote notification.
130 // A nil action identifier indicates the default action.
131 // You should call the completion handler as soon as you've finished handling the action.
132 - (void)application:(UIApplication *)application handleActionWithIdentifier:(nullable NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler
133 {
134     
135     NSLog(@"ios8新增 --- %@ -- %@ --- %@",identifier,userInfo,application);
136     
137     
138 }//NS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED;
139 
140 
141 
142 
143 @end

5)都搞好了,我们得模拟发推送。这里我们用这个测试程序: 把我们刚刚生成的推送证书下载下来, 然互拖过来:

图片 1

然后连接服务器,再点击推送就OK~~

 

可能出现的问题:

1)注册失败Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串"

这是因为推动证书设置错误了.而且会调用 远程推送注册失败这个方法(- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error);首先检查:三个证书的APPID是否是对的;三个证书是否都双击安装了;APPID的ID是否为项目的Bundle Identifier; 基本也就这些情况吧, 有其他情况的可以评论补充.

 

很久以前写demo,现在回忆下~~~可能有点错误 GIthub: 步骤: 1)添加APP ID. 苹果开发者中心:...

win10如何修改时间与日期?windows10系统日期修改教程,win10windows10

在使用电脑的过程中,如果发现电脑的时间和日期不对了该怎么办,下文,小编就教大家WIN10系统如何修改时间与日期。

如下图所示,小编的电脑时间与日期不对了,首先在桌面空白处点击鼠标右键,然后选择“显示设置”。

图片 2

图片 3

接着在搜索框里面搜索“控制面板”,然后会弹出控制面板选项,然后点击控制面板,

图片 4

在控制面板界面找到“日期和时间”,然后点击“日期和时间”,位置如下图所示。

图片 5

接着,在新的界面里面点击“更改日期和时间”,如下图所示。

图片 6

然后将时间与日期修改正确,修改好之后,点击确定即可。

图片 7

点击了确定之后,去桌面的右下角的时间区,查看修改后的时间,确认正确。

图片 8

 

在使用电脑的过程中,如果发现电脑的时间和日期不对了该怎么办,下文...

win10/win8如何更改日期和时间,win10win8更改日期

win10/win8的日期和时间的修改和win7不一样,和XP一不一样。那么怎么修改呢?小编与大家分享一下。

点击开始:

 

图片 9

点击设置:

 

图片 10

点击时间和语言:

 

图片 11

点击日期和时间:

 

图片 12

点击日期和时间更改:

 

图片 13

确定好日期和时间确认即可:

 

图片 14

 

win10/win8的日期和时间的修改和win7不一样,和XP一不一样。那么怎么修改呢?小编与大家分享...

Core Data的一些常见用法,coredata用法

一、简介

Core Data是一个纯粹的面向对象框架,其本质就是一个ORM(对象关系映射:Object Relational Mapping),能以面向对象的方式操作SQLite数据库。在实际开发中绝大部分情况下,Core Data底层都采用SQLite数据库作为持久化存储方式。它也允许把数据保存在内存中(设备重启后数据会丢失),也允许把数据存储为其他格式(如XML)。简单的讲,它就是用于操作实体以及实体之间的关联关系的持久化工具。

二、Core Data的核心概念。

1、实体

实体就是由Core Data管理的模型对象,是NSManagedObject类或其子类的实例。

实体与实体之间是1-1、1-N、N-N的关联关系。

2、实体描述

NSEntityDescription:该对象描述了实体的具体信息(如包含的所有属性等),相当于实体的抽象。

3、托管对象模型

NSManagedObjectModel:该对象负责管理所有实体以及实体之间的关联关系。

4、托管对象上下文

NSManagedObjectContext:简称上下文,所有实体都处于上下文的管理中,实体的增、删、改、查操作都必须通过该对象来完成。类似于Hibernate的Session。

5、持久化存储协调器

NSPersistentStoreCoordinator:底层与NSManagedObjectContext相衔接,负责管理底层的存储形式(如SQLite数据库或XML等)。

6、抓取请求

NSRetchRequest:该对象封装了查询实体的请求,例如需要查询哪些实体、查询条件(通过NSPredicate来表示)、排序规则(用NSArray定义了所有的排序规则)等。

三、使用Core Data的步骤。

注:创建项目时如果勾选"Use Core Data"复选框,Xcode会自动完成所有Core Data必需资源的初始化,前3步会自动完成,此时需从第4步开始操作。

1、为项目导入CoreData.Framework框架。

2、添加实体模型文件。

Xcode → File → New → File → Data Model → next → "实体模型文件名".xcdatamodeld → create;

3、初始化Core Data必需的核心API对象,这些是属于全局对象,一般会在AppDelegate中操作。

(1)、在AppDelegate.h中添加3个核心属性,再添加一个执行存储的方法。

 1 #import <UIKit/UIKit.h>
 2 #import <CoreData/CoreData.h>
 3 
 4 @interface AppDelegate : UIResponder <UIApplicationDelegate>
 5 
 6 @property (strong, nonatomic) UIWindow *window;
 7 
 8 @property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
 9 @property (nonatomic, strong) NSManagedObjectModel *managedObjectModel;
10 @property (nonatomic, strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;
11 
12 - (void)saveContext;
13 
14 @end

(2)、在AppDelegate.m中初始化NSManagedObjectModel。

1 - (NSManagedObjectModel *)managedObjectModel {
3     if (_managedObjectModel != nil) {
4         return _managedObjectModel;
5     }
6     NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"CoreData2" withExtension:@"momd"];
7     _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
8     return _managedObjectModel;
9 }

(3)、以NSManagedObjectModel对象为基础,在AppDelegate.m中初始化NSPersistentStoreCoordinator,用于设置Core Data底层数据存储方式。

 1 - (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
 2     if (_persistentStoreCoordinator != nil) {
 3         return _persistentStoreCoordinator;
 4     }
 5     _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
 6     NSURL *storeURL =  [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
 7     storeURL = [storeURL URLByAppendingPathComponent:@"CoreData2.sqlite"];
 8     NSError *error = nil;
 9     if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
10         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
11         abort();
12     }
13     
14     return _persistentStoreCoordinator;
15 }                

(4)、以NSManagedObjectModel对象为基础,在AppDelegate.m中初始化NSManagedObjectContext。

 1 - (NSManagedObjectContext *)managedObjectContext {
 2     if (_managedObjectContext != nil) {
 3         return _managedObjectContext;
 4     }
 5     
 6     NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
 7     if (!coordinator) {
 8         return nil;
 9     }
10     _managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
11     [_managedObjectContext setPersistentStoreCoordinator:coordinator];
12     return _managedObjectContext;
13 }

(5)、在AppDelegate.m中实现saveContext方法,用于保存数据。

 1 - (void)saveContext {
 2     NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
 3     if (managedObjectContext != nil) {
 4         NSError *error = nil;
 5         if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
 6             NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
 7             abort();
 8         }
 9     }
10 }

(6)、在AppDelegate.m中实现此方法,当应用在后台被终止时,保存上下文中的数据。

1 - (void)applicationWillTerminate:(UIApplication *)application {
2     [self saveContext];
3 }

经过以上3大步骤,Core Data项目初始化完成,当应用程序需要执行增、删、改、查等操作时,直接调用AppDelegate中的managedObjectContext属性即可操作。

4、设计实体模型。

单击Xcode项目导航中的"实体模型文件名".xcdatamodeld文件,打开实体模型开始编辑。图片 15

(1)、实体:是实体模型的核心对象,实体必需是NSManagedObject类或其子类。点击"Add Entity"添加实体。

(2)、抓取请求:是NSFetchRequest对象,实际开发中通常会在代码中创建。

(3)、配置:系统默认配置,无需自行添加。

(4)、属性:相当于实体对象的实例变量,在实体列表中选中刚生成的实体,点击"Add Attribute"添加属性。

(5)、关联关系:定义实体之间的关联关系,如1-1、1-N、N-N。具体操作如下:

选中实体 → 在Relationships下点击加号添加关联关系  → 在Relationship下填写关联关系名称 → 在Destination下选择目标实体 → 在Xcode属性面板的Type中选择关联类型 → 在Xcode属性面板的Delete Rule中选择级联类型。

  • Relationship:关联关系的名称。
  • Destination:关联关系的目标实体。
  • Inverse:建立实体与目标实体之间的关联关系,保持数据的完整性,不设置的话编译器会有警告。
  • Type中的To One:1-1.
  • Type中的To Many:1-N。                           // N-N的情况需设置其他的实体对此实体为1-N
  • Delete Rule的No Action:当主实体被删除时,关联的目标实体不变。
  • Delete Rule的Nullify:当主实体被删除时,关联的目标实体外键值被设置为null。
  • Delete Rule的Cascade:当主实体被删除时,关联的目标实体也被级联删除。
  • Delete Rule的Deny:当主实体被删除时,如果被关联的目标实体还存在,程序会拒绝删除主实体的操作。必需先删除关联的目标实体,才能删除主实体。

(6)、抓取属性:在获取关联实体时可执行某个过滤条件。

5、用实体模型生成实体。

即以"实体模型文件名".xcdatamodeld文件中的某个实体为基础,为该实体生成NSManagedObject的子类。

Xcode → File → New → File → NSManagedObject Subclass → 选择实体模型文件 → 选择文件中的实体(大于1个时) → create;

6、实现数据的增、删、改、查。

(1)、添加实体。

  • 调用NSEntityDescription的insertNewObjectForEntityForName:inManagedObjectContext:类方法添加新实体。
  • 设置新实体属性。
  •  调用NSManagedObjectContext对象的save方法保存上下文。

    1 HLAuthor *author = [NSEntityDescription insertNewObjectForEntityForName:@"HLAuthor" inManagedObjectContext:self.appDelegate.managedObjectContext];
    2 author.name = @"张三";
    3 author.authorDesc = @"xxx";
    4 NSError *error = nil;
    5 if (![self.appDelegate.managedObjectContext save:&error]) {
    6     NSLog(@"保存失败:%@, %@", error, error.userInfo);
    7 }
    

(2)、删除实体。

  • 获取要删除的实体。
  • 调用NSManagedObjectContext对象的deleteObject:方法删除实体。
  • 调用NSManagedObjectContext对象的save方法保存上下文。

    1 HLAuthor *author = self.authorArray[indexPath.row];
    2 [self.appDelegate.managedObjectContext deleteObject:author];
    3 NSError *error = nil;
    4 if (![self.appDelegate.managedObjectContext save:&error]) {
    5     NSLog(@"删除失败:%@, %@", error, error.userInfo);
    6 }
    

(3)、修改实体。

  • 获取要修改的实体。
  • 修改实体属性。
  • 调用NSManagedObjectContext对象的save方法保存上下文。

    1 HLAuthor *author = .....;
    2 author.name = .....;
    3 author.authorDesc = .....;
    4 NSError *error = nil;
    5 if ([self.delegate.managedObjectContext save:&error]) {
    6     NSLog(@"修改失败:%@, %@", error, error.userInfo);
    7 }
    

(4)、查询实体。

  • 创建NSFetchRequest对象。
  • 通过NSEntityDescription对象设置NSFetchRequest对象所要抓取的实体。
  • 通过NSPredicate对象设置筛选条件(如果需要),通过NSSortDescriptor对象设置查询结果的排序规则(如果需要)。
  • 调用NSManagedObjectcontext对象的executeFetchRequest:error:方法执行查询,返回所有符合条件的结果集NSArray。

    1 NSFetchRequest *request = [[NSFetchRequest alloc] init];
    2 NSEntityDescription *entity = [NSEntityDescription entityForName:@"author" inManagedObjectContext:self.appDelegate.managedObjectContext];
    3 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"nane = %@", @"张三"];
    4 NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
    5 request.entity = entity;
    6 request.predicate = predicate;
    7 request.sortDescriptors = @[descriptor];
    8 NSError *error = nil;
    9 NSArray *result = [self.appDelegate.managedObjectContext executeFetchRequest:request error:&error];
    

 

Data的一些常见用法,coredata用法 一、简介 Core Data是一个纯粹的面向对象框架,其本质就是一个ORM(对象关系映射:Object Relational Mapping...

本文由小鱼儿玄机30码发布于小鱼儿玄机30码,转载请注明出处:小编的电脑时间与日期不对了,添加一个ID

关键词: 小鱼儿玄机30码

  • 上一篇:没有了
  • 下一篇:没有了