`
wiisola
  • 浏览: 87418 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

避免nil object错误

阅读更多
一般都会使用 <%= @topic.category.name %> 来简单的获取一篇文章的所在分类名,但但 @topic.category 为nil时,就会出现"nil object when you didn't expect it "的错误。

要避免发生这个错误,简单的办法就是改成如下代码:
<%= @topic category.name rescue nil %>
分享到:
评论

相关推荐

    ios-一个关于数组越界、字典key与value为nil情况下导致的低级错误的线上Crash的避免的仓库.zip

    标题和描述中提到的问题,即“数组越界”、“字典key与value为nil”的情况,是常见的编程错误,可能导致程序崩溃,严重影响用户体验。这个“DYSafeObject”库很可能提供了一些解决方案来预防这些低级错误。 首先,...

    ios-防止数组越界 字典value为nil导致崩溃.zip

    为了避免这种问题,可以使用`NSDictionary`的安全方法`object(forKey:)`,它在key不存在时返回`nil`,或者使用Swift的`Dictionary`的`subscript(key:)`,返回类型是可选值,确保在访问不存在的键时不会触发异常。...

    Object-c学习文档

    - `#import` 与 `#include`:Objective-C 中推荐使用 `#import`,它可以自动处理头文件的包含问题,避免重复包含导致的问题。 #### 创建 Classes **@interface 与 @implementation:** - `@interface` 用于声明类...

    iOS中nil、Nil、NULL、NSNull详解

    在iOS开发中,我们经常会遇到各种表示空值的符号,如nil、Nil、NULL和NSNull。...了解这些差异可以提高代码的可读性和准确性,避免潜在的运行时错误。因此,在编程时,选择正确的空值表示至关重要。

    Delphi 编译错误信息集合

    Delphi是一种基于Object Pascal语言的集成开发环境,广泛...对于初学者来说,了解和掌握这些常见的Delphi编译错误及其解决方法是至关重要的,它有助于避免因错误而浪费时间,并能更好地理解和利用Delphi的强大功能。

    object-c基础教程移动版2.pdf

    19. #import与#include: 在Objective-C中推荐使用#import来代替#include,因为#import能防止头文件的重复包含,避免了潜在的编译错误。 20. 编译与输出: 在Objective-C中编译一个程序需要使用命令行工具,并且其...

    object-c基础教程.pdf

    - **nil**: 用于表示空指针,在Objective-C中可以向nil发送消息,而在C/C++中这是不允许的。 - **BOOL**: Objective-C中定义的布尔类型,只有两个值YES和NO。 - **#import vs #include**: 在Objective-C中推荐...

    NilSafe分类

    NSArray和NSDictionary的 NilSafe 分类主要关注两个核心功能:确保插入nil元素时不会导致运行时错误,以及在访问可能不存在的索引或键时提供保护。通过扩展这些类,我们可以增加一些方法,比如`safeAddObject:`和`...

    delphi中提示尚未调用coinitialize错误的解决方法.pdf

    因此,在使用 Delphi 开发应用程序时,需要正确地初始化 COM 库,以避免“尚未调用 CoInitialize”错误的出现。同时,需要注意 CoInitialize 和 OleInitialize 的区别,以正确地选择函数来初始化 COM 库或 OLE 系统...

    nil:PHP 中一个非常棒且合理的空对象实现

    - 避免了因`null`值导致的运行时错误。 - 可以统一处理对象和`null`值,简化代码结构。 6. **注意事项** - 尽管空对象模式有其优势,但过度使用可能导致代码复杂性增加。应谨慎评估是否真的需要引入这种模式。 ...

    防止崩溃的措施

    使用`object(forKey:)`方法时,如果键不存在,返回的是nil,而不是引发异常。但是,开发者应当在访问字典值之前检查键是否存在,或者使用Swift的`if let`或`guard let`来安全地解包可选值。 字符串操作也是导致崩溃...

    delphi中提示“尚未调用coinitialize错误”的解决方法.pdf

    在Delphi编程中,"尚未调用CoInitialize错误"通常发生在尝试使用COM(Component Object Model)对象或OLE(Object Linking and Embedding)组件时,系统检测到当前线程尚未初始化COM库。此错误提示表明在尝试使用COM...

    iOS中json解析出现的null,nil,NSNumber的解决办法

    在解析JSON时,务必处理可能出现的`null`值,避免因发送无效的消息给`NSNull`对象而导致程序崩溃。使用适当的错误处理和验证机制,确保在访问数据之前对数据进行适当的检查和转换。 通过以上方法,可以有效地处理...

    object-c基础教程.

    例如,Objective-C使用nil代替C语言中的NULL,并且在Objective-C中传递消息给nil是合法的操作。 2. BOOL数据类型:与C语言不同,Objective-C中的BOOL类型是包含在Foundation类库中,使用YES或NO表示布尔值,而不是...

    iOS开发 常见的崩溃闪退原因(12点)1

    例如,`NSDictionary *dic = @{@"key": nil}`会导致崩溃,而`[mutDic setObject:nil forKey:@"key"]`或`mutDic[@"key"] = nil;`则不会。 2. **数组越界**:访问数组索引超出范围会导致崩溃。例如,尝试访问`NSArray...

    ProgrammingWithObjectiveC

    它们通常包含有关错误的详细信息,如错误码和描述,这对于调试和处理异常情况非常有用。 #### Objective-C Code Follows Established Conventions Objective-C代码遵循既定的约定,这有助于提高代码的可读性和一致...

    object-c基础教程

    - **#import与#include**:在Objective-C中推荐使用#import代替#include,以避免重复包含同一个头文件的问题。 ##### 2.4 编译第一个程序 - **Hello World程序**:使用简单的C语言printf函数输出“Hello World”。 ...

    Objective-C编程中语句和变量的一些编写规范建议

    - 尽管有时会用到 `nil == myValue` 的写法以避免误写成赋值,但考虑到尤达表达式的负面影响,应避免这种用法。 3. **避免嵌套if语句**: - 避免过度嵌套的if语句,以提高代码的可读性和可维护性。优先考虑使用 `...

    Object-C重要面试题.doc

    使用了括号来确保参数正确传递,避免因操作符优先级问题导致的错误。 **结论:** - 使用宏定义可以方便地定义常量,需要注意宏定义的语法及括号使用规则。 - 宏`MIN`是一种常见的最小值比较宏,需要注意宏展开时的...

Global site tag (gtag.js) - Google Analytics