将从数组中取到的字符串赋值给了UIImage导致的错误

Terminating app due to uncaught exception ‘NSInvalidArgumentException‘, reason: ‘-[__NSCFConstantString size]: unrecognized selector sent to instance 0xa500‘

      NSArray * imageArr = @[@"tabbar_limitfree",
                           @"tabbar_reduceprice",
                           @"tabbar_appfree",
                           @"tabbar_subject",
                           @"tabbar_rank"];

  [item setImage:imageArr[i] forState:UIControlStateNormal]; //这行代码具有迷惑性,titleArr[i]是取出来的数据类型是 id ,实际上取到值是NSString类型的。因为OC是运行时语言,所以编译时,编译器会觉得它是对的,但是到了运行的时候,发现它并没有想要的方法,所以报了经典错误 unrecognized selector sent to instance。

  改正后的代码:

    [item setImage:[UIImage imageNamed:imageArr[i]] forState:UIControlStateNormal];

  

  

时间: 2024-08-24 17:41:33

将从数组中取到的字符串赋值给了UIImage导致的错误的相关文章

array_slice 从数组中取值

rray_slice() 函数在数组中根据条件取出一段值,并返回. 注释:如果数组有字符串键,所返回的数组将保留键名.(参见例子 4) 语法 array_slice(array,offset,length,preserve) 参数 描述 array 必需.规定输入的数组. offset 必需.数值.规定取出元素的开始位置. 如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值. length 可选.数值.规定被返回数组的长度. 如果 length 为正,则返回该数量的元素.

[码海拾贝 之Perl]在字符串数组中查找特定的字符串是否存在

前言 检索一个字符串是否存在于一个数组中, 最基本的想法应该就是对数组进行循环, 逐个判断数组的每个元素值和给定的值是否相等. (在Java语言还可以把数组转成 List , 在 list 中直接有 contains 方法可以使用) 看一段简单的代码: my @arr2 = qw(str1 str2 str3 str4); foreach(@arr2) { if($_ eq "str2") { print "str2 exist in Array!\n"; last

JS 多数组中取最大数组,分组

代码小结,使用 JS 对数据进行分组,对分组中的数组取最大数组: var combineTemplate = JSON.parse(data.combineTemplate); //根据仪器种类ID分组 var temp = {}, dest = []; for (var i = 0; i < combineTemplate.length; i++) { var ele = combineTemplate[i]; if (!temp[ele.typeId]) {//不存在就添加新得元素 dest

一月十日练习习题,1数组数据存入字典并输出2降序 和倒叙 输出数组中内容3对字符串当中信息进行查找是否存在4 把数组当中信息尽心中文排序

// //  main.m //  Pratise_Jan10_1 // //  Created by wangyang on 16/1/10. //  Copyright (c) 2016年 Wangyang. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 第1题 请将如下数据存储成字典,并将字典

python 将数组中取某一值的元素全部替换为其他元素的方法

这里的问题是在做House Price Prediction的时候遇到的,尝试对GarageArea做log转化,但是由于有些房子没有车库,所以GarageArea = 0,再通过log转化变成-inf了,所以我想把所有-inf的数据全部再转化为0,如题目所示. 除了循环还可以怎么做呢?看下面的代码 train_test['GarageArea'] = np.log(train_test['GarageArea']) train_test['GarageArea'] = train_test['

从数组中取3个数全排列

import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; public class comb { public static void main(String[] args) { //全排列 n from m //int c[]={3,94,100,8,5,7,12,6}; int c[]={3,94,100

[示例]NSPredicate基础-查询数组中负荷条件的子集

代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取. 定义(最常用到的方法): NSPredicate这个类有点类似于数据库中的查询,是用于在一批内容中查询符合条件的子集,中文翻译成“谓词”.这个翻译实在让我感觉很别扭,虽然

转:最小区间:k个有序的数组,找到最小区间使k个数组中每个数组至少有一个数在区间中

转:http://www.itmian4.com/thread-6504-1-1.html 最小区间原题 k个有序的数组,找到最小的区间范围使得这k个数组中,每个数组至少有一个数字在这个区间范围内.比如: 数组1:[4, 10, 15, 24, 26] 数组2:[0, 9, 12, 20] 数组3:[5, 18, 22, 30] 最小的区间是[20, 24],这个区间包含了数组1中的24,数组2中的20,数组3中的22 思考时间~~~ 分析 该题看起来还算比较简单,大家通常都会想到:为每一个数组

[LeetCode] Maximum Distance in Arrays 数组中的最大距离

Given m arrays, and each array is sorted in ascending order. Now you can pick up two integers from two different arrays (each array picks one) and calculate the distance. We define the distance between two integers a and b to be their absolute differ