在Swift中将整数转换为NSData(Converting an Integer to NSData in Swift)
在Objective-C中代码看起来很喜欢这个,
NSInteger random = arc4random_uniform(99) + 1 NSData *data = [NSData dataWithBytes:& random length: sizeof(random)];
但是当我尝试在Swift中这样做时,
let random:NSInteger = NSInteger(arc4random_uniform(99) + 1) //(1-100) let data = NSData(bytes: &random, length: 3)
它给了我一个错误,坚持“NSInteger不能转换为@lvalue in $ T1
任何帮助将不胜感激!
In Objective-C the code looked liked this,
NSInteger random = arc4random_uniform(99) + 1 NSData *data = [NSData dataWithBytes:& random length: sizeof(random)];
But when I try to do this in Swift,
let random:NSInteger = NSInteger(arc4random_uniform(99) + 1) //(1-100) let data = NSData(bytes: &random, length: 3)
It gives me an error staying that "NSInteger is not convertible to @lvalue inout $T1
Any help would be greatly appreciated!
原文:https://stackoverflow.com/questions/26227066
最满意答案
总而言之,您在发布的代码中实际尝试做的是检查从
$request
传入的ban_status
值,或者换句话说是登录表单。我对你的问题的理解是,这不是你想要的。
相反,试试这个:
通过在
LoginController
定义AuthenticatesUsers
的login
方法来覆盖它,并添加以下一小部分来检查你的ban_status
:public function login(Request $request) { $this->validateLogin($request); // If the class is using the ThrottlesLogins trait, we can automatically throttle // the login attempts for this application. We'll key this by the username and // the IP address of the client making these requests into this application. if ($lockedOut = $this->hasTooManyLoginAttempts($request)) { $this->fireLockoutEvent($request); return $this->sendLockoutResponse($request); } $credentials = $this->credentials($request); if ($this->guard()->attempt($credentials, $request->has('remember'))) { if ($this->guard()->user()->ban_status === 0) { // ADDED THIS CHECK return $this->sendLoginResponse($request); } } // If the login attempt was unsuccessful we will increment the number of attempts // to login and redirect the user back to the login form. Of course, when this // user surpasses their maximum number of attempts they will get locked out. if (! $lockedOut) { $this->incrementLoginAttempts($request); } return $this->sendFailedLoginResponse($request); }
To make a long story short, what you are actually trying to do in the code you posted is to check the
ban_status
value being passed in from the$request
, or in other words the login form.My understanding of your questions is that this is not really what you want.
Instead, try this:
Override the
login
method ofAuthenticatesUsers
by defining it inLoginController
, with the following small addition to check for yourban_status
:public function login(Request $request) { $this->validateLogin($request); // If the class is using the ThrottlesLogins trait, we can automatically throttle // the login attempts for this application. We'll key this by the username and // the IP address of the client making these requests into this application. if ($lockedOut = $this->hasTooManyLoginAttempts($request)) { $this->fireLockoutEvent($request); return $this->sendLockoutResponse($request); } $credentials = $this->credentials($request); if ($this->guard()->attempt($credentials, $request->has('remember'))) { if ($this->guard()->user()->ban_status === 0) { // ADDED THIS CHECK return $this->sendLoginResponse($request); } } // If the login attempt was unsuccessful we will increment the number of attempts // to login and redirect the user back to the login form. Of course, when this // user surpasses their maximum number of attempts they will get locked out. if (! $lockedOut) { $this->incrementLoginAttempts($request); } return $this->sendFailedLoginResponse($request); }
相关问答
更多-
在5.3你只需要重写注册方法。 您可以将以下内容添加到您的App\Http\Controllers\Auth\RegisterController : /** * Handle a registration request for the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function register(Request ...
-
总而言之,您在发布的代码中实际尝试做的是检查从$request传入的ban_status值,或者换句话说是登录表单。 我对你的问题的理解是,这不是你想要的。 相反,试试这个: 通过在LoginController定义AuthenticatesUsers的login方法来覆盖它,并添加以下一小部分来检查你的ban_status : public function login(Request $request) { $this->validateLogin($request); // If t ...
-
是。 有可能的。 在用户登录之前 ,请检查数据库中是否有相同用户的现有会话。 这里有一个架构假设,所有现有的会话都应该过期并需要删除。 如果存在,请删除它们。 确保在删除现有/过期会话后,为当前登录创建/插入条目。 欲了解更多信息,你可以检查this question and relevant answers 。 Yes. It is possible. Before User login, check for any existing sessions in database for same user. ...
-
您可以创建一个Laravel Middleware,查看链接了解更多信息 php artisan make:middleware CheckStatus 修改你的中间件来获取请转到vendor / laravel / framework / src / Illuminate / Foundation / Auth / AuthenticatesAndRegistersUsers.php app / MyAuthAndRegistersUsers.php 而不是它的流动 public function postLogin(Request $request) { $this->validate($request, [ 'userna ...
Laravel 5.3 - 我不希望'/'路由重定向到登录(Laravel 5.3 - I don't want the '/' route to redirect to login)[2023-07-17]
我的代码被遵循 Route::group(['middleware' => 'web'], function () { Route::get('/', 'ViewnewsController@getIndex'); ... }); 如果权限是admin-> Route::group(['middleware' => 'auth'], function () { Route::match(['get'], ' ...你可以通过在Auth\LoginController.php重写login()方法来实现。 只需检查凭据是否有效,然后执行以下操作: return $this->sendLoginResponse($request); 例如: if (Hash::check($request->password, $passwordFromDB) && ($request->username == $usernameFromDB || $request->email == $emailFromDB)) { ret ...编辑:我误解了你原来的问题。 这已更新。 如果您需要自定义,可以执行以下操作: 打开App\Http\Controllers\Auth\LoginController (根据文档 ,这将由php artian make:auth命令生成我假设你使用)并添加: /** * Get the failed login response instance. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Res ...Laravel 5.3登录限制(Laravel 5.3 login throttling)[2022-04-27]
根据文件 : 如果您使用的是Laravel的内置LoginController类,则Illuminate \ Foundation \ Auth \ ThrottlesLogins特性将已包含在您的控制器中。 默认情况下,如果多次尝试后用户无法提供正确的凭据,则用户将无法登录一分钟 Simple. If cache is set to array, it won't work. Set cache to file for example.你可以在5.3中使用LoginController 。 做你想要的一种方法是覆盖sendLoginResponse()方法并在它的开头添加这样的东西: if (!auth()->user()->active) { auth()->logout(); return redirect('/'); } 这将注销用户他没有活动并将他重定向到根。 这将是active的布尔值。 You can use LoginController in 5.3 for that. One way to do wha ...相关文章
更多- 千锋首发Swift视频教程
- Swift入门视频教程-尚学堂视频教程
- PL/SQL PLS_INTEGER类型对性能实验测试
- Hadoop文本转换为序列文件
- 使用 XSLT 将 XML 转换为 XHTML
- 关于如何将utf8转换为gb2312的问题
- 学习di'z地址
- Prince Of Persia III - The Two Thrones 通关完成
- 用java把“真”这个字符转换为十六进制为“771f”,这是ascii还是unicode
- hibernate list查询 报类型转换异常
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)