Resources.Load() returning a blank Sprite everytime?

void Start () {

	Sprite drop = Resources.Load(PlayerPrefs.GetString("BattleBackground")) as Sprite;
	this.GetComponent<SpriteRenderer>().sprite = drop;
}

I’ve played around, thinking that it was an error with PlayerPrefs but it won’t work for regular input either. I’ve check other forum posts and have made sure that my Resources folder exists, and is spelled correctly. I’ve done all checks and have come to the conclusion that it’s an issue with Resources.Load(). Anytime it’s run, the sprite, even if there was an existing one on the object, becomes null. I am very confused.

@username

The problem is with your PlayerPrefs .Because PlayerPrefs returns value as they are set and returns value against a key So, you can’t use Prefs.
If you are not sure of prefs then you can check this will print null Debug.Log(PlayerPrefs.GetString(“BattleBackground”));

using UnityEngine;

public class NewBehaviourScript1 : MonoBehaviour {

	// Use this for initialization
	void Start ()
	{
	    Sprite drop;
	    drop = Resources.Load<Sprite>("BattleBackground");

	    GetComponent<SpriteRenderer>().sprite = drop;
	}

}

if you want to get sprite using playerpfres then you have to set key first like in the code.

using UnityEngine;
public class NewBehaviourScript1 : MonoBehaviour {
	// Use this for initialization
	void Start ()
	{
	    Sprite drop;
	    drop = Resources.Load<Sprite>(GetNameOfString());
	    GetComponent<SpriteRenderer>().sprite = drop;
	}
    public string GetNameOfString()
    {
        PlayerPrefs.SetString("BattleBackground", "BattleBackground");
        Debug.Log(PlayerPrefs.GetString("BattleBackground"));                            
        return PlayerPrefs.GetString("BattleBackground");
    }
}